我有一个大型的XML文件(26,434行),我正在使用它。
摘录XML:
<row name="Scorned Syndicate" shortName="-SS-" allianceID="1778325832" executorCorpID="98020631" memberCount="29" startDate="2010-08-14 00:29:00">
<rowset name="memberCorporations" key="corporationID" columns="corporationID,startDate">
<row corporationID="98020119" startDate="2011-02-09 04:52:00" />
<row corporationID="98020631" startDate="2011-02-23 23:55:00" />
</rowset>
</row>
通过在这里搜索,我发现我如何获得联盟名称和短名称,但现在我想要公司ID
$xml = new XMLReader();
$xml->XML( $xmlString );
while( $xml->read() ) {
if( 'row' === $xml->name ) {
echo $xml->getAttribute('name') . ' '. $xml->getAttribute('shortName').'<br>';
$xml->next();
}
}
我研究得足以知道我需要利用流媒体阅读器提高效率,但不知道如何获取数据的最后部分。
答案 0 :(得分:1)
当您在XMLReader中使用next()函数时,将跳过子树。你的while语句应该自动推进。如果您需要在解析整个文件之前查看输出,可以考虑使用ob_flush,否则最好创建一个数组,以便格式更加可定制。