Работаю с неким АПИ
На мой запрос АПИ отвечает в формате xml
Обычно ответ приходит примерно таким:
<?xml version="1.0" ?>
<root numrecords="3">
<node1 index="0" result="0" saleid="98556" ticketbarcode="39040056074800160611" />
<node2 index="1" result="0" saleid="98557" ticketbarcode="22040058074800160611" />
<node3 index="2" result="0" saleid="98558" ticketbarcode="10040060074800160611" />
</root>
Тут проблем не возникает, я поступаю примерно так:
// $result - сюда приходит ответ в виде xml
$dom = new DomDocument();
$dom->loadXML($result);
$root = $dom->documentElement;
$nodes = $root->childNodes;
foreach($nodes as $node) {
echo $node->getAttribute("ticketbarcode");
}
Но иногда (на самом деле часто) чтото идёт не так и я получаю xml в другом формате:
<?xml version="1.0" ?>
<root numrecords="3">
<node1 index="0" result="0" saleid="98556" ticketbarcode="39040056074800160611">
<node2 index="1" result="0" saleid="98557" ticketbarcode="22040058074800160611">
<node3 index="2" result="0" saleid="98558" ticketbarcode="10040060074800160611">
</node3>
</node2>
</node1>
</root>
и всё ломается...
С разработчиками АПИ спорить бесполезно....
Может кто знает - как получить все дочерние элементы не зависимо от степени их вложенности?