我在使用xpath返回元素时遇到问题。 我需要从一张大桌子上获取第二轮TD的文字。
<tr>
<td>
<label for="PropertyA">Some text here </label>
</td>
<td> TEXT!! </td>
</tr>
我能够找到标签元素,但是我在选择兄弟TD以返回文本时遇到了麻烦。
这是我选择标签的方式:
"//label[@for='PropertyA']"
感谢
答案 0 :(得分:18)
您正在寻找轴following-sibling
。它在同一个父级中的兄弟姐妹中搜索 - 它是tr
。如果td
不在tr
内,则找不到它们。如果你想要它,那么你可以使用轴following
。
//td[label[@for='PropertyA']]/following-sibling::td[1]
答案 1 :(得分:8)
来自label
元素,它应该是:
//label[@for='PropertyA']/following::td[1]
然后使用托管语言中的DOM方法获取字符串值。
或者选择文本节点(我不建议这样做):
//label[@for='PropertyA']/following::td[1]/text()
或者如果只有这一个节点,那么你可以使用string()
函数:
string(//label[@for='PropertyA']/following::td[1])
您还可以从共同的祖先tr
中选择:
//tr[td/label/@for='PropertyA']/td[2]
答案 2 :(得分:0)
获取以下元素:
// TD [标号[@for =&#39; PropertyA&#39;]] /以下同胞:: *