У меня много проблем при попытке прочитать следующий XML-файл:
<Results>
<Art>
<Art>
<Code>100</Code>
</Art>
<Art>
<Code>200</Code>
</Art>
<Art>
<Code>300</Code>
</Art>
<Art>
</Results>
Проблема, с которой я сталкиваюсь, заключается в том, что и родитель, и его потомки называются "Art".
Следующий код работает нормально, только если родитель назван, например, «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();
}
Но так как и родителя, и его ребенка называют «искусством», я не могу понять, как получить только детей.
Заранее спасибо!