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

标签 php xml simplexml

您好,这是我的 xml 文件:(thefile)

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://nts-de-osm1-pxc/webservices/">
  <Item xmlns:q1="http://systinet.com/wsdl/com/osm/webservices/service/" xsi:type="q1:Document">

    <q1:attributes>
      <q1:Attribute>
        <q1:dataDictionary xsi:nil="true" />
        <q1:dataType>string</q1:dataType>
        <q1:displayName>AEND_DATUM</q1:displayName>
        <q1:key>false</q1:key>
        <q1:name>AEND_DATUM</q1:name>
        <q1:searchable>true</q1:searchable>
        <q1:userAttribute>true</q1:userAttribute>
        <q1:value>10.05.10</q1:value>
      </q1:Attribute>
      <q1:Attribute>
        <q1:dataDictionary xsi:nil="true" />
        <q1:dataType>string</q1:dataType>
        <q1:displayName>AEND_PRUEF_DATUM</q1:displayName>
        <q1:key>false</q1:key>
        <q1:name>AEND_PRUEF_DATUM</q1:name>
        <q1:searchable>true</q1:searchable>
        <q1:userAttribute>true</q1:userAttribute>
        <q1:value>10.05.10</q1:value>
      </q1:Attribute>
    </q1:attributes>
  </Item>
</ArrayOfItem>

这是我的代码

$xml = simplexml_load_file($thefile);
print_r($xml);

这是输出

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

)

为什么这是空的?

最佳答案

不要使用 print_r() 或 var_dump() 来检查 SimpleXMLElement,它们不一定对它们起作用,因为 SimpleXML 在幕后使用了很多魔法。相反,看看什么 asXML() 返回。

在你的情况下,它不显示 <q1:attributes/>因为它们不在同一个命名空间中。

编辑

要访问那些命名空间节点,有许多不同的方法,most of them discussed here at Stack Overflow .如果您无法解决,请提出一个新问题,因为主题不同。以下是访问这些元素的 3 种方法:

$ArrayOfItem->Item->children("http://systinet.com/wsdl/com/osm/webservices/service/");
$ArrayOfItem->Item->children('q1', true);
$ArrayOfItem->Item->xpath('//q1:Attribute');

关于php - SimpleXML 和 print_r() - 为什么这是空的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3109302/

相关文章:

PHP CSS 解析器无法解析属性值中的分号

php - 如何在jquery中获取wordpress的COOKIEPATH?

java - 使用 Android ExpandableLayout 库

python - 从网站获取图像

PHP on Apache on Linux : when web app starts processes, 如果 Apache 重新启动,是否可以让这些进程保持事件状态?

php - 每个数据库使用一个 Laravel 迁移表

ios - 在 iOS swift 中解析 xml

php - 如何将特定标签从 RSS XML 导入 MySQL 数据库

PHP: preg_match() 不正确

php - Xpath路径帮助