当我print_r()通过变量引用SimpleXMLElement对象时$xmlObject,我看到以下结构:
SimpleXMLElement Object
(
[@attributes] => Array
(
[uri] => /example
)
[result] => SimpleXMLElement Object
(
[message] => Record(s) added successfully
[recorddetail] => Array
(
[0] => SimpleXMLElement Object
...
)
)
)
Run Code Online (Sandbox Code Playgroud)
注意该$xmlObject->result->message属性看起来像是一个字符串.但是,如果我这样做print_r($xmlObject->result->message),我会得到以下结果:
SimpleXMLElement Object
(
[0] => Record(s) added successfully
)
Run Code Online (Sandbox Code Playgroud)
所以在这一点上我很困惑.为什么在这种情况下$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到字符串.
| 归档时间: |
|
| 查看次数: |
4002 次 |
| 最近记录: |