当我print_r()
变量$xmlObject
引用的SimpleXMLElement对象时,我看到以下结构:
SimpleXMLElement Object
(
[@attributes] => Array
(
[uri] => /example
)
[result] => SimpleXMLElement Object
(
[message] => Record(s) added successfully
[recorddetail] => Array
(
[0] => SimpleXMLElement Object
...
)
)
)
注意
$xmlObject->result->message
属性看起来像只是一个字符串。但是,如果我执行print_r($xmlObject->result->message)
,则会得到以下信息:SimpleXMLElement Object
(
[0] => Record(s) added successfully
)
所以在这一点上我很困惑。当打印完整的
$xmlObject->result->message
的结果不建议这样做时,为什么在这种情况下将SimpleXMLElement Object
标识为$xmlObject
的实例?以及我实际上如何访问该值?我已经尝试过
$xmlObject->result->message[0]
,但是它只是打印出相同的内容(即我发布的最后一个代码片段)。 最佳答案
在print_r
上使用var_dump
或SimpleXMLElement
时获得的表示形式与内部结构无关。例如,没有属性@attributes
,您也可以使用$element['@attributes']['uri']
访问。您只需要$element['uri']
这就是事实。 SimpleXmlElement
对象的行为不同。使用SimpleXml之前,请确保已阅读PHP手册中的示例:
要详细了解其实现,您必须查看源代码:
要打印
$xmlObject->result->message
,只需执行echo $xmlObject->result->message
即可。那会自动将SimpleXmlElement
转换为字符串。关于php - 访问SimpleXMLElement对象的某些属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9691847/