如何使用 xpath/php 获取 xml 文件中的节点名称?

Posted

技术标签:

【中文标题】如何使用 xpath/php 获取 xml 文件中的节点名称?【英文标题】:How to get the name of a node in a xml file using xpath/php? 【发布时间】:2012-08-06 14:54:46 【问题描述】:

我有一个大的 xml 文件,我需要打印具有特定命名空间及其节点名称的每个条目(使用 php)。

例如,给定以下 xml 结构:

    <file>
        <myNamespace:node1>entry1</myNamespace:node1>
        <myNamespace:node2>entry2</myNamespace:node2>
        ... [any other nodes here] ...
    </file>

我想为带有 myNamespace 命名空间的 xml 文件中的每个节点打印一个 [node1, entry1], [node2, entry2] 等元组。问题是,我不知道如何获取节点的名称('node1'、'node2'、...),我只获取条目。现在我正在使用这个代码:

    foreach($xml->xpath('myNamespace:*') as $value) 
        echo $value.'<br />';
    

我读过一些关于 name() 和 local-name() 函数的内容,但我无法让它工作:( 谢谢你帮助我!

【问题讨论】:

【参考方案1】:

您应该使用getName() - 尝试类似:

foreach($xml->xpath('myNamespace:*') as $value)  
    echo $value->getName().'='.$value.'<br />'; 
 

【讨论】:

以上是关于如何使用 xpath/php 获取 xml 文件中的节点名称?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 XQuery 获取 XML 文件中的子节点数

如何获取 XML 文件(存储在 SQL DB 中)的大小?

如何从存储在我的 PC 上的文件中获取 XML 数据并使用 javascript 填充 HTML 表格?

如何使用powershell从xml中获取属性值?

如何从元素中具有相同名称的 xml 文件中获取特定值?

如何仅获取 c# 上下文中两个 xml 文件的更改?