PHP的XMLReader跳过子树

时间:2016-12-14 20:57:13

标签: php xml xmlreader

我试图解析一个大型XML文件。它看起来像:

<application>
  <action-keys>
    <case-file>...</case-file>
    <case-file>...</case-file>
    <case-file>...</case-file>
  </action-keys>
  <action-keys>
    <case-file>...</case-file>
    <case-file>...</case-file>
    <case-file>...</case-file>
  </action-keys>
<application>

我打开它并寻找&#34;案例档案&#34;值,但在第一组案例文件之后,执行$ xml-&gt; next(&#34; case-file&#34;)到文件的末尾,跳过第二组案例文件。如何获取所有案例文件?

1 个答案:

答案 0 :(得分:0)

你可以尝试这样的事情。它将读取文件的所有节点并提取所有case-file xml元素的文本内容。

$caseFiles = array();
$xml = new XMLReader();
$xml->open('content.xml');
while ($xml->read()) {
    if ($xml->nodeType == XMLReader::ELEMENT && $xml->name==='case-file') {
        $xml->read();
        $caseFiles[] = $xml->readString();
    }
}