<html><body>
<div id="start">
<div>
<div>NOT A TARGET</div>
</div>
<aBcDeFG>
<div>target</div>
</aBcDeFG>
</div>
</body></html>
有一个文档与此类似。 <aBcDeFG>
标签是在每次页面刷新时生成的随机标签。我写了一个带通配符的 XPath 表达式来定位 target
div
:
$x('/html/body/div/*/div')
表达式返回两个div
s,作为NOT A TARGET
匹配:[div, div]
.
$x('/html/body/div/*[2]/div')
不起作用,返回值为空。
$x('/html/body/div/node()[2]/div')
也不行,返回值为空。
如何仅通过索引定位未知标签?
最佳答案
你的 /html/body/div/*[2]/div
选择器 is correct .我猜你在开发者工具控制台中获取节点有困难。试试这个:
$x('/html/body/div/*[2]/div')[0].innerHTML
使用 document.evaluate
的示例
var r = document.evaluate('/html/body/div/*[2]/div', document, null, XPathResult.ANY_TYPE, null);
var n = r.iterateNext();
console.log(n.innerHTML);
<html><body>
<div id="start">
<div>
<div>NOT A TARGET</div>
</div>
<aBcDeFG>
<div>target</div>
</aBcDeFG>
</div>
</body></html>
关于javascript - XPath:如何从包含未知标签名称的路径中提取节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40587054/