When I print_r()
变量引用的 SimpleXMLElement 对象$xmlObject
,我看到以下结构:
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
or var_dump
on a SimpleXMLElement
与它的内部结构关系不大。例如没有财产@attributes
你可以通过以下方式访问$element['@attributes']['uri']
任何一个。你只要做$element['uri']
事情就是这样。SimpleXmlElement
对象的行为不同。在使用 SimpleXml 之前,请确保阅读 PHP 手册中的示例:
- http://php.net/manual/en/simplexml.examples-basic.php
要详细了解其实现,您必须查看源代码:
- http://lxr.php.net/opengrok/xref/PHP_TRUNK/ext/simplexml/simplexml.c
打印$xmlObject->result->message
你只是这样做echo $xmlObject->result->message
。这将自动投射SimpleXmlElement
串起来。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)