【发布时间】:2016-07-19 04:16:13
【问题描述】:
在给定 dom 节点的相对路径的情况下,是否可以使用 javascript 获取绝对 xpath?
我发现的最接近的是获取节点的 xpath:Get Xpath from the org.w3c.dom.Node
此外,我获得了没有唯一标识符的节点的相对 xpath。任何想法如何解决这个问题?
例如,对于:
<p>DUKE SOLINUS</p>
<div>
<p>AEGEON</p>
</div>
对于选定的单词“DUKE”和“AEGEON”,我分别得到xpaths“/p[1]”和“/div[1]/p[1]”,当它们传递给document.evaluate函数时两者都评估为同一节点“DUKE SOLINUS”。所以,我只有这些相对的 xpath,没有节点。我想要的是评估这些相对 xpath 以纠正节点,即本例中的两个不同节点(DUKE SOLINUS 和 AEGEON)。
更具体地说,xpaths 取自 json 注释对象:http://docs.annotatorjs.org/en/v1.2.x/annotation-format.html
任何帮助将不胜感激! 非常感谢!
【问题讨论】:
-
这可能是其中一个问题,无论您想出什么优雅的答案,我都可以构建一个失败的场景。为每个节点分配 ID 是可行的,但这很糟糕。为什么你仍然需要绝对 xpath?也许有一个你没有的解决方案。
-
非常感谢您的回答!我害怕听到这个,但我仍然希望会有一个答案。我在页面上有一个选定文本的相对路径(我也有那个文本 - 不是特别有用),我需要用其他一些文本替换那个文本。由于我得到的相对路径并不总是唯一的(我将使用示例更新我的问题),document.evaluate 函数将评估为同一个节点。
标签: javascript dom xpath