我有一个HTML文档,其中有一个表包含可能有或没有类的行,例如:
<tr class="">
<th>Name</th>
<td class="row-text">Myname</td>
</tr>
在上面的示例中,该行没有类。但是我需要获取列值(即MyName
)。这些行中唯一唯一的值是标头标记。
有没有办法使用XPath按标头值获取正确的行?
答案 0 :(得分:3)
是的,你可以使用following-sibling
axis:
//th[. = 'Name']/following-sibling::td
或者,通过tr
父元素:
//tr[th = 'Name']/td
答案 1 :(得分:1)
@alecxe回答是对的。我会添加其他类似的替代方案:
这个查找tr
的所有th
,其'Name'
包含td
子串(如果有多个元素包含文字'将'作为其内容的一部分命名,也将被选中);并在tr
//tr[contains(th, 'Name')]/td
th
这个是相似的,但只提供完全匹配的元素,并且还会处理规范化空格,这很有用,因为有时完全匹配是找不到,因为在文本之前可能有空格或换行符阻止完全匹配。它找到..
移动到父级(td
),最后移动到//th[normalize-space(text()) = 'Name']/../td
$x("some/xpath")
请记住,您可以使用Chrome和Firefox控制台中的$("some css")
功能来检查xpath;类似于CSS选择器的awk
。