gpt4 book ai didi

javascript - 有没有办法根据网页中的已知值计算 XPath?

转载 作者:行者123 更新时间:2023-11-28 16:40:38 24 4
gpt4 key购买 nike

据我了解,XPath 是一种在 XML 文档中导航元素的方法。
方向是 XPath -> element。
你如何反其道而行之?也就是说,根据已知的元素值计算 XPath?

例如,如何在 stackoverflow header 中找到“faq”链接的 xpath?
语言并不那么重要,我更感兴趣的是有助于我计算 XPath 的算法和/或库/技术。

最佳答案

这是一个简单的 JS 函数来完成它。它仅使用 previousSibling、nodeType 和 ParentNode,因此它应该可以移植到其他语言。然而,结果是不可读的(对于人类来说),并且在面对页面更改时不会特别鲁棒。

根据我的经验,如果手工编写 XPath 会更有用。但是,您当然可以制定一种算法来生成更漂亮(如果可能更慢)的结果。

function getXPath(node)
{
if(node == document)
return "/";
var xpath = "";
while (node != null && node.nodeType != Node.DOCUMENT_NODE)
{
print(node.nodeType);
var pos = 1, prev;
while ((prev = node.previousSibling) != null)
{
node = prev
pos++;
}
xpath = "/node()[" + pos + "]" + xpath;
node = node.parentNode;
}
return xpath;
}

关于javascript - 有没有办法根据网页中的已知值计算 XPath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/900808/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com