访问我的SimpleXML对象

时间:2017-12-12 12:20:39

标签: php simplexml simplexml-load-string

我想测试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 个答案:

答案 0 :(得分:0)

对于遇到此问题的任何人,答案都涉及使用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