同名的PHP XMLReader父级和子级

时间:2018-06-30 16:29:45

标签: php xmlreader

尝试读取以下XML文件时遇到很多麻烦:

<Results>
  <Art>
    <Art>
      <Code>100</Code>
    </Art>
    <Art>
      <Code>200</Code>
    </Art>
    <Art>
      <Code>300</Code>
    </Art>
  <Art>
</Results>

我面临的问题是父母和孩子都被命名为“艺术”。

以下代码仅在将父代命名为“ Arts”且将其子代命名为“ Art”的情况下有效:

$xml_path = '/path_to_file/file.xml';
$reader = new XMLReader();
if ($reader->open($xml_path)) {
  while ($reader->read() && $reader->name !== 'Art');
  while ($reader->nodeType == XMLReader::ELEMENT && $reader->name === 'Art') {
    $node = simplexml_load_string($reader->readOuterXML());

    // Get the "Code" in the current "Art".
    $current_code = (string)$node->Code;
    // Do something with $current_code...

    $reader->next('Art');
  }
  $reader->close();
}

但是,由于父母及其子女都被称为“艺术”,我似乎无法弄清楚如何只让子女得到。

谢谢!

1 个答案:

答案 0 :(得分:0)

我设法使其与以下代码一起使用:

document

让我发疯了XD