如何在xml文件中获取每个节点的完整路径?

时间:2015-07-25 10:24:39

标签: xml xpath

我正在使用xpath来遍历xml文件。我想知道是否有一种简单的方法来获取文件中每个节点的路径。我能想到的一种方法是收集数组中的所有节点。然后将它传递给一个函数,该函数将每个节点作为参数并继续查找父节点,直到达到文档根。所以,

            function getPathForNode(eachXmlNode, path) {
                if ( eachXmlNode == rootNode ) {
                    return path;
                } else {
                    getPathForNode(eachXmlNode->parent, path+path_of_parent);
                }
            }

如果有其他更好的方法或递归功能是否正确,请告诉我?

1 个答案:

答案 0 :(得分:2)

这取决于您使用的主机和XPath语言版本。

最简单的方法是使用具有path功能的XPath 3:

//node()/path()

或者,如果您不想在路径中使用名称空间,例如:

//node()/replace(path(), "Q[{][^}]*[}]", "")