SimpleXML 和 print_r() - 为什么这是空的?
当使用 SimpleXML 加载 XML 文件,然后使用 print_r 打印其内容时(),您可能会遇到意外的空输出。这个问题源于 print_r() 处理 SimpleXML 对象的方式。
为什么 print_r() 显示 SimpleXML 元素的空数组?
Print_r() 和 var_dump( )由于 SimpleXML 复杂的内部机制,并不总是有效地显示 SimpleXML 对象。相反,建议使用 asXML() 方法来检查 XML 对象的内容。
在您的特定情况下,print_r() 显示空 Item 元素,因为嵌套属性位于不同的命名空间中。
访问 SimpleXML 中的命名空间元素
要使用 SimpleXML 访问不同命名空间中的元素,您可以采用各种方法:
代码示例:
使用子级(命名空间,include_ns):
<code class="php">$ArrayOfItem->Item->children("http://systinet.com/wsdl/com/osm/webservices/service/", true);</code>
使用 xpath():
<code class="php">$ArrayOfItem->Item->xpath('//q1:Attribute');</code>
使用 registerXPathNamespace():
<code class="php">$ArrayOfItem->Item->registerXPathNamespace('q1', 'http://systinet.com/wsdl/com/osm/webservices/service/'); $attributes = $ArrayOfItem->Item->xpath('//q1:Attribute');</code>
以上是以下是一些基于您的文章的基于问题的标题,强调'为什么它是空的”方面: * **SimpleXML 和 `print_r()`:为什么它显示 XML 元素的空数组?** **的详细内容。更多信息请关注PHP中文网其他相关文章!