例如我们有以下 HTML :<li class="gcui-menu-item tsc-dr-tree-item">1</li><li class="gcui-menu-item tsc-dr-tree-subitem">1-1</li><li class="gcui-menu-item tsc-dr-tree-subitem">1-2</li><li class="gcui-menu-item tsc-dr-tree-item">2</li><li class="gcui-menu-item tsc-dr-tree-subitem">2-1</li>注意:s中包含的文本实际上并不存在于页面上,它们作为标签存在以帮助解释问题。li在这里,我想获取子项“1-1”和“1-2”,仅在第一个树项“1”下方。如果我搜索://li[contains(@class, 'tree-item')]//following::li[contains(@class, 'subitem')]我还在第二个树项“2-1”下面得到了子项,因为此结构没有子项作为项的子项,而是同级项。那么,在我们到达一个元素之前,有什么办法可以做吗?也许直到下一个在其类中包含“树项”?following:: lilifollowing::lili
1 回答

繁星coding
TA贡献1797条经验 获得超4个赞
下面是第一个菜单项下的 li 子项元素匹配的 xpath。
//li[contains(@class,'tree-item')][1]/following-sibling::li[contains(@class,'tree-subitem') and count(preceding-sibling::li[contains(@class,'tree-item')])=1]
下面是 Chrome 控制台中的输出。
添加回答
举报
0/150
提交
取消