拥有这个html表:
<table class="info">
<tbody>
<tr><td class="name">Year</td><td>2011</td></tr>
<tr><td class="name">Area</td><td>45 m<sup>2</sup></td></tr>
<tr><td class="name">Condition</td><td>Renovated</td></tr>
</tbody>
</table>
我正在尝试从每行的第二个单元格中提取数据(它是:2011年,45米,已翻新)
我使用这个Xpath表达式:
//table[@class="info"]//td[2]//text()
收到输出(错误):
2011
45 m
2
Renovated
期望的输出:
2011
45 m
Renovated
如您所见,从第2行开始,我收到了 <sup>
标记中包含的值。我想排除这个值。
我知道我可以使用这个代码(而不是我当前的Xpath代码)(最后删除了1个斜杠):
//table[@class="info"]//td[2]/text()
它会解决问题,但我需要在 <sup>
中排除此特定的 <td>
标记。因为有时我在 <td>
中有一些我不想排除的标签。
所以,我希望从每行的第二个单元格中获取数据并排除 <sup>
标记中的值
答案 0 :(得分:1)
对于每个tr
获取第二个td
并获取/text()
(单斜杠)以避免获取元素子文本。为我工作:
//table[@class="info"]//tr/td[2]/text()
打印:
2011
45 m
Renovated
或者,如果您只想排除sup
元素:
//table[@class="info"]//tr/td[2]//text()[not(parent::sup)]