我有一个 xml 数据,如下所示
<channel>
<title>-----</title>
<link>------</link>
<description>---</description>
<lastBuildDate>Tue, 27 Sep 2011 16:37:01 +0000</lastBuildDate>
<language>en</language>
<generator>-------</generator>
<item>
<title>-----</title>
<link>-------</link>
<comments>------</comments>
<pubDate>Tue, 27 Sep 2011 16:37:01 +0000</pubDate>
<category>-----</category>
</item>
<item>
<title>-----</title>
<link>-------</link>
<comments>------</comments>
<pubDate>Tue, 27 Sep 2011 </pubDate>
<category>-----</category>
</item>
<item>
<title>-----</title>
<link>-------</link>
<comments>------</comments>
<pubDate>Wed, 28 Sep 2011 16:37:01 +0000</pubDate>
<category>-----</category>
</item>
</channel>
由此,我需要检索用户的所有现有 XML 标签,例如频道、标题、链接、项目等,也包括它们的子标签。我的意思是 XML 文件中的所有现有标签
我需要帮助如何使用 php 来做到这一点,我使用了 DOM 和简单的 XML 对象,但如果我知道我需要的标签名称,我只能获取特定标签中的值。
但我实际上需要处理许多 xml 文件,我不知道该特定 xml 的结构和标签是什么,因为我需要获取现有的标签名称,以便我可以将它们显示给用户以选择什么他需要的标签...
我需要使用 php 执行此操作的建议。,
提前致谢。
这是我的尝试:
$doc = new DOMDocument();
$doc->loadXML( $yourXmlString ); // or:
$doc->load( $yourXmlUrl );
$xpath = new DOMXpath( $doc );
$nodes = $xpath->query( '//*' );
$nodeNames = array();
foreach( $nodes as $node )
{
$nodeNames[ $node->nodeName ] = $node->nodeName;
}
var_dump( $nodeNames );
我希望我能做到xpath
虽然表达效率更高一些,但我想不出什么。这就是为什么我不断地覆盖密钥$nodeNames
.
想一想:也许我误解了你的问题,你根本不想要唯一的元素名称,而是想要字面意思all元素。如果是这样:您想要它们如何?作为字符串?包括他们的完整路径?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)