Доступ к моему объекту SimpleXML

Я хочу проверить значение узлов ErrorCode & ErrorMessage.

$x = '<exe:API_Error xmlns:exe="http://xxxxx.uk/APIResults">
    <exe:ErrorCode>ERRORS FOUND</exe:ErrorCode>
    <exe:AdditionalInfo1/>
    <exe:AdditionalInfo2>1-SX-A-J7A-000-USX00-SSX06-A203</exe:AdditionalInfo2>
    <exe:ErrorMessage>Errors:[Account is not 22, 20, 19, or 9 in length.]
</exe:ErrorMessage>
</exe:API_Error>';


$xml = new SimpleXMLElement($x);
$xml2 = simplexml_load_string($x);

var_dump($xml);

var_dump($xml2);

Мой вывод

object(SimpleXMLElement)[1]

object(SimpleXMLElement)[3]

Однако я загружаю XML, var_dump только показывает, что у меня есть объект SimpleXMLElement. Кажется, я не могу получить доступ ни к одному из свойств этого объекта.

var_dump($xml->API_Error);

var_dump($xml2->API_Error);

возвращается

object(SimpleXMLElement)[3]

object(SimpleXMLElement)[3]

Я использую PHP 5.6

1 ответ

Для тех, кто сталкивается с этим, ответ связан с использованием xpath.

$xml = new SimpleXMLElement($x);

foreach($xml->xpath('//exe:API_Error') as $e) {

  echo $e->xpath('//exe:AdditionalInfo2')[0];
}

, выдаваемые:

1-SX-A-J7A-000-USX00-SSX06-A203

Другие вопросы по тегам