【发布时间】:2014-07-09 07:29:05
【问题描述】:
您好,我正在尝试使用 XML Reader 读取一些我不知道元素名称的动态 xml。我需要使用 XML Reader 而不是 SimpleXML,因为这就是我的服务器上可用的全部内容。 我遇到的麻烦是试图拥有可以处理嵌套和非嵌套元素的东西。 我的 XML 看起来像
<status>
<state>active</state>
<time>2014-07-15T04:00:00.000Z</time>
<output-type>archive</output-type>
<sources>
<source>
<class>audio</class>
<channels>
<channel>
<position>left</position>
<average>0</average>
<peak>0</peak>
</channel>
<channel>
<position>right</position>
<average>1095</average>
<peak>1114</peak>
</channel>
</channels>
</source>
</status>
但也可能看起来像:
<status>inactive</status>
我正在使用以下代码:
while ($reader->read()) {
if ($reader->nodeType == XMLReader::ELEMENT) {
$element = $reader->name;
//$elementarray[] = $element;
echo $element;
if ($reader->depth <1){echo"</br>";}
}
if ($reader->nodeType == XMLReader::TEXT) {
$value = $reader->value;
$valuearray[] = $value;
echo " : ".$value."</br>";
}
}
这个输出
1stElement2ndelement : text
无论如何我都无法在文档记录不佳的 XML 阅读器中找到输出
1stElement:
2ndelement: text
我可以用它来填充一个数组。
感谢任何帮助,因为我是 PHP 新手。
【问题讨论】: