为什么在具有命名空间的 XML 文件上使用 print_r() 时我的 SimpleXML 对象为空?

DDD
发布: 2024-10-27 06:27:29
原创
869 人浏览过

Why is my SimpleXML Object Empty When Using print_r() on an XML File with Namespaces?

SimpleXML 和 print_r() - 为什么这是空的?

使用 simplexml_load_file() 加载 XML 文件,然后用 print_r($xml) 可能会让您想知道为什么它显示为空:

<code class="xml"><ArrayOfItem>
  <Item>
    <attributes>
      <Attribute>
        <dataType>string</dataType>
      </Attribute>
    </attributes>
  </Item>
</ArrayOfItem></code>
登录后复制
<code class="php">$xml = simplexml_load_file('myfile.xml');
print_r($xml);</code>
登录后复制
结果:

SimpleXMLElement Object
(
    [Item] => SimpleXMLElement Object
        (
        )

)
登录后复制

为什么这是空的?

原因是

print_r() 不会输出 节点中元素的内容,因为它们位于不同的 XML 命名空间。

解决方案:

要访问和输出这些元素的内容,请使用专门设计用于处理 XML 命名空间的方法,例如

SimpleXMLElement: :children()SimpleXMLElement::xpath()。例如:

以上是为什么在具有命名空间的 XML 文件上使用 print_r() 时我的 SimpleXML 对象为空?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!