我正在使用一些第三方API,它们通过xml以下列形式返回错误:
<xml>
<status>0</status>
<error code="111">Error message text goes here.</error>
</xml>
在PHP中使用simplexml_load_string
我可以轻松获取状态0和错误消息文本,但我找不到从code="111"
检索<error code="111">
值的方法。它似乎被SimpleXML放弃了。
<?php
$bytesRead = file_get_contents('http://api.....');
$xml = simplexml_load_string($bytesRead);
echo '<pre>'; print_r($xml); echo '</pre>';
?>
输出
SimpleXMLElement Object
(
[status] => 0
[error] => Error message text goes here.
)
我错过了什么吗?有没有办法获得这个值,或者有人建议另一种方法来获得这个?
答案 0 :(得分:11)
它就在那里,但只是没有显示在print_r
输出中。像the basic examples page coins it in Example #5 Using attributes:
到目前为止,我们只介绍了阅读元素名称及其值的工作。 SimpleXML还可以访问元素属性。像访问array的元素一样访问元素的属性。
示例:
$x = '<xml>
<status>0</status>
<error code="111">Error message text goes here.</error>
</xml>';
$attributeObject = simplexml_load_string($x)->error['code'];
print_r($attributeObject);
print_r((string) $attributeObject);
节目输出(Demo)
SimpleXMLElement Object
(
[0] => 111
)
111
答案 1 :(得分:3)
就像这样使用 echo $ xml-&gt; error ['code'];