<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
,因为NOT A TARGET
匹配:[div, div]
。
$x('/html/body/div/*[2]/div')
不起作用,返回值为空。
$x('/html/body/div/node()[2]/div')
也不起作用,返回值为空。
如何仅通过索引找到未知标签?
答案 0 :(得分:0)
试
'(/html/body/div/*[2])/div'
答案 1 :(得分:0)
您的/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>
答案 2 :(得分:0)
如果当syou说“未知”标签时,你的意思是“不同于DIV的标签”,你可以使用这个xpath:
/html/body/div/*[not(name(.)='div')]/div