Если вы только пытаетесь прочитать некоторые данные из строки XML, возможно, самый простой способ будет использовать SimpleXML , а не DOM - DOM хорошо подходит для написания XML, но для чтения с SimpleXML гораздо проще работать.
Например, вы можете использовать что-то вроде этого в качестве отправной точки:
Примечание. Я использовал функцию simplexml_load_string
для загрузки строки XML.
$string = <<<STR
<?xml version="1.0" encoding="utf-8" ?>
<payer>
<purchase_list>
<freeform_purchase>
<line_number>1</line_number>
<description>description</description>
<price_including_vat>12</price_including_vat>
<vat_percentage>
15
</vat_percentage>
<quantity>10</quantity>
</freeform_purchase>
</purchase_list>
<payment_urls>
<auth_url>authurl</auth_url>
<settle_url>settleurl</settle_url>
</payment_urls>
</payer>
STR;
$xml = simplexml_load_string($string);
echo intval($xml->purchase_list->freeform_purchase->price_including_vat) . '<br />';
echo (string)$xml->payment_urls->auth_url . '<br />';
Что даст вам следующий вывод:
12
authurl
По сути, в SimpleXML дерево XML доступно как объект - корневой узел XML отсутствует в дереве, поскольку он является корневым; вот почему мне не пришлось включать payer
для доступа к данным.