我正在尝试创建一个xpath表达式,它将找到第一个匹配的兄弟' down'给出一个初始兄弟的dom(注意:最初的兄弟姐妹将是汤姆和史蒂夫)。例如,我想找到' jerry1'汤姆' TR。我已经研究了下面的兄弟争论,但我不确定这是最好的方法吗?有什么想法吗?
<tr>
<a title=”Tom”/>
</tr>
<tr>
<a title=”jerry1”/>
</tr>
<tr>
<a title=”jerry2”/>
</tr>
<tr>
<a title=”jerry3”/>
</tr>
<tr>
<a title=”Steve”/>
</tr>
<tr>
<a title=”jerry1”/>
</tr>
<tr>
<a title=”jerry2”/>
</tr>
<tr>
<a title=”jerry3”/>
</tr>
答案 0 :(得分:1)
following-sibling
会奏效。这将选择标题为“jerry1”的a
节点:
//a[@title='Tom']/../following-sibling::tr/a
/..
遍历Tom的父级<tr>
,然后following-sibling
遍历下一个<tr>
,最后遍历该<a>
节点。
答案 1 :(得分:0)
以下XPath为我工作:
(//a[@title='Tom']/parent::*/following-sibling::tr/a[@title= 'jerry1'])[1]
首先将a
与title
jerry1匹配,tr
与a
- title
孩子a[@title='Tom']
Tom匹配。
从/parent
开始,使用::*/following-sibling::tr
转到父tr,选择具有/a[@title= 'jerry1']
的所有后续兄弟tr节点,其中jerry1
为子节点。因为这将选择2个()
- 节点并且搜索Tom之后的第一个jerry1,通过将[1]
包裹XPath并选择与{{1}}匹配的第一个匹配来选择第一个。
答案 2 :(得分:0)
以下XPath语句查找第一个tr
元素,其中a
的{{1}}“jerry1”是@title
元素的后续兄弟一个tr
a
的“汤姆”
@title