这是实验网页地址
请看下图;这是我真正想要捕获的节点。因为它和之前的节点非常相似:
<div class="indent" id="dir_2567698_short" style="display: none;">,
我用了
//*[contains(@class,'indent') and contains(@style,'display' )]/..
找到它的父节点,然后使用
/div[6]
来定位实际目标。但目标节点排名不一定总是在第6位;有些可能排在第五位。因此,我想使用
//*[contains(@class,'indent') and contains(@style,'display' )]/.
首先定位<div class="indent" id="dir_2567698_short" style="display: none;">
。然后,我想找到它的下一个同级兄弟节点,这样我就可以准确地找到目标节点。然而,我尝试了几种方法都没有成功。如何找到“下一个兄弟节点”?
以下是我尝试过但无效的方法:
//*[contains(@class,'indent')and contains(@style,'display' )]/./div[1]
//*[contains(@class,'indent')and contains(@style,'display' )]/./div[0]
HTML 中的 ID 应该是唯一的,因此如果您正在寻找具有类似
id
属性的元素节点<div class="indent" id="dir_2567698_short" style="display: none;">
,那么似乎//*[@id = 'dir_2567698_short']
或者,如果 XPath 实现支持id
HTML 的功能,甚至id('dir_2567698_short')
应该足够了。对于同级元素,使用
preceding-sibling::*[1]
或following-sibling::*[1]
, 查找第一个前面或后面的同级元素。