Привет всем, у меня есть эта структура XML, и я хотел бы получить значение IdDocumento
атрибутов
<pago10:Pagos>
<pago10:Pago>
<pago10:DoctoRelacionado IdDocumento="B670AD5D-8BA6-42CF-A0D0-1A403E042FBA" />
</pago10:Pago>
<pago10:Pago>
<pago10:DoctoRelacionado IdDocumento="B670AD5D-8BA6-42CF-A0D0-1A403E042FBA" />
<pago10:DoctoRelacionado IdDocumento="842b32ce-44c1-4b31-96b8-3a34569c698c" />
</pago10:Pago>
</pago10:Pagos>
Я пробовал с этим следующим образом:
$xml = simplexml_load_file('complemento.xml');
$ns = $xml->getNamespaces(true);
$xml->registerXPathNamespace('p', $ns['pago10']);
if ($xml->xpath('//p:Pagos')) {
foreach ($xml->xpath('//p:Pagos') as $pagos10) {
foreach ($xml->xpath('//p:Pago') as $pago10) {
foreach ($xml->xpath('//p:DoctoRelacionado') as $doc) {
echo $doc['IdDocumento'] . '<br>';
}
echo "=========================================";
}
}
}
Но это отображает сразу 3 атрибута IdDocumento
. Я надеялся напечатать первый атрибут IdDocumento
и создать разделитель, а затем распечатать два других, как я могу узнать, какой IdDocumento принадлежит каждому pago10:Pago
узлу?
Ожидаемый результат:
B670AD5D-8BA6-42CF-A0D0-1A403E042FB
====================================
B670AD5D-8BA6-42CF-A0D0-1A403E042FBA
842b32ce-44c1-4b31-96b8-3a34569c698c
Что я получаю:
B670AD5D-8BA6-42CF-A0D0-1A403E042FB
B670AD5D-8BA6-42CF-A0D0-1A403E042FBA
842b32ce-44c1-4b31-96b8-3a34569c698c
====================================
B670AD5D-8BA6-42CF-A0D0-1A403E042FB
B670AD5D-8BA6-42CF-A0D0-1A403E042FBA
842b32ce-44c1-4b31-96b8-3a34569c698c