我有 xls 数据,如下面的代码所示。如何仅选择具有 class="aaa" 属性的第一级节点?
我不能使用这样的“//*[@class='aaa']”,因为它也会选择级别 2。
也不能像“/root/div/div[@class='aaa']那样直接放置路径,因为层次结构内节点的位置可能会有所不同。
有没有办法只选择第一级节点,无论它们在层次结构中的位置如何?
<root>
<div>
<!-- level 1 -->
<div class="aaa">
<div>
<!-- level 2 -->
<div class="aaa">
</div>
</div>
<div>
<div>
<!-- level 2 -->
<div class="aaa">
</div>
</div>
</div>
</div>
</div>
<div>
<div>
<div>
<div>
<div>
<!-- level 1 -->
<div class="aaa">
</div>
</div>
</div>
</div>
</div>
</div>
</root>
Run Code Online (Sandbox Code Playgroud)
一种可能的 XPath :
//div[@class='aaa' and not(ancestor::div[@class='aaa'])]
Run Code Online (Sandbox Code Playgroud)
基本上在 XPath 之上选择<div>具有classequals"aaa"且不具有equals 的祖先<div>class"aaa",换句话说,最外层<div>具有classequals "aaa"。