在JavaScript中使用XPath查询获取节点后,获取节点的完整路径

在JavaScript中使用XPath查询获取节点后,获取节点的完整路径,javascript,xml,xpath,Javascript,Xml,Xpath,我有下一条JavaScript指令: var firstScene = document.evaluate('//Scene', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null); 因此,我的问题是如何使用以下方法获取节点的完整路径firstscene?: 将从firstScene.iterateNext()获得的DOM ojbect传递给getXPath()方法,它将返回一个包含所有XPATH步骤的数组 然后可以使用arra

我有下一条JavaScript指令:

var firstScene = document.evaluate('//Scene', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
因此,我的问题是如何使用以下方法获取节点的完整路径
firstscene

将从
firstScene.iterateNext()
获得的DOM ojbect传递给
getXPath()
方法,它将返回一个包含所有XPATH步骤的数组

然后可以使用array
join()
方法返回完整的XPATH表达式:

getXPath(firstScene.iterateNext()).join("/");

它不起作用,你从哪里得到所有的属性?我调试了程序,XpathResult没有您使用的任何东西的定义,nodeType、nextSibling、previousSibling……XpathResult.ORDERED_NODE_iterator_TYPE的迭代器唯一拥有的是一个移动到下一个结果节点iterateNext()的方法和访问内部值的属性。对此表示抱歉。我使用
document.getElementById
的结果进行了测试。我将查看是否可以使用XPATH计算结果对其进行正确计算。看起来
getXPath()
方法需要一个DOM对象,而XPATH表达式的结果不是,但是您可以从
iterateNext()
方法获得它。我已经用一些对我有用的东西更正了我的答案。我测试了它,用iterateNext都不起作用,但是使用返回HTMLElement的singleNodeValue属性,你的函数可以工作!!!,感谢您的帮助…现在我只剩下一个小问题…在一些页面中,我有不同的框架,因此contextNode(evaluate的第二个参数)不是文档,因此查询失败…我正在搜索如何克服该问题。
getXPath(firstScene.iterateNext()).join("/");