我需要使用XPath提取HTML单元格表中的值,并且我不想使用“位置”XPath字符串。
我的代码示例就是这样的
<body>
<table>
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
<tr>
<td>
<table id="GridView5">
<tr>...</tr>
<tr>...</tr>
<tr>
<td>First Title</td>
<td>1</td>
<td>2</td>
<td>3</td>
<tr>
</table>
</td>
</tr>
</table>
</body>
我正在尝试使用类似这样的XPath表达式
//*[@id=”GridView5”]/*[td=”First Title”]/td[3]
从上面的代码
中提取值“ 2 ”连连呢?实例
答案 0 :(得分:2)
这个XPath,
//table[@id="GridView5"]/tr[td="First Title"]/td[3]
将选择td
的第tr
个孩子,其中td
子项的字符串值为First Title
且table
内id
GridView5
1}} td
的属性值。
它为请求的td
元素使用单个位置选择器,因为您的标记不提供区分包含2
的{{1}}的其他方法,除非您允许假设2之后1或3之前(处理标签)。如果前面或后面的td
元素可以用作标签,那么您可以使用前面或后面的兄弟轴而不是[3]
。
//table[@id="GridView5"]/tr[td="First Title"]/td[.='1']/following-sibling::td[1]
但即使在这里,您也需要[1]
才能在兄弟之后立即选择 。