我正在使用xpath来遍历xml文件。我想知道是否有一种简单的方法来获取文件中每个节点的路径。我能想到的一种方法是收集数组中的所有节点。然后将它传递给一个函数,该函数将每个节点作为参数并继续查找父节点,直到达到文档根。所以,
function getPathForNode(eachXmlNode, path) {
if ( eachXmlNode == rootNode ) {
return path;
} else {
getPathForNode(eachXmlNode->parent, path+path_of_parent);
}
}
如果有其他更好的方法或递归功能是否正确,请告诉我?
答案 0 :(得分:2)
这取决于您使用的主机和XPath语言版本。
最简单的方法是使用具有path
功能的XPath 3:
//node()/path()
或者,如果您不想在路径中使用名称空间,例如:
//node()/replace(path(), "Q[{][^}]*[}]", "")