使用simplexml_load_string获取xml属性

JJ.*_*JJ. 3 php xml simplexml

可能重复:
从SimpleXML访问@attribute

我正在使用一些第三方API,它通过以下形式通过xml返回错误:

<xml>
<status>0</status>
<error code="111">Error message text goes here.</error>
</xml>
Run Code Online (Sandbox Code Playgroud)

simplexml_load_string在PHP中使用我可以轻松获取状态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>';
?>
Run Code Online (Sandbox Code Playgroud)

输出

SimpleXMLElement Object
(
    [status] => 0
    [error] => Error message text goes here.
)
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?有没有办法获得这个值,或者有人建议另一种方法来获得这个?

Bre*_*mir 11

它就在那里,但只是没有在print_r输出中显示.像示例#5中的基本示例页面硬币一样使用属性:

到目前为止,我们只介绍了阅读元素名称及其值的工作.SimpleXML还可以访问元素属性.像访问数组元素一样访问元素的属性.

例:

$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);
Run Code Online (Sandbox Code Playgroud)

程序输出(演示)

SimpleXMLElement Object
(
    [0] => 111
)
111
Run Code Online (Sandbox Code Playgroud)