1

我正在使用一个大型 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();
    }
}

我进行了足够的研究,知道我需要使用流式阅读器来提高效率,但不确定如何获取数据的最后一部分。

4

1 回答 1

1

当您在 XMLReader 中使用 next() 函数时,会跳过子树。您的 while 语句应自动推进它。如果您需要在整个文件被解析之前查看输出,您可能会考虑使用 ob_flush,否则最好创建一个数组,以便格式更加可定制。

于 2013-08-06T17:11:09.997 回答