使用 Xpath 如何从有时包含链接的 table 单元格中提取数据?
Using Xpath how to extract data from table cells that contain links sometimes?
我有这个htmltable:
<table class="info">
<tbody>
<tr><td class="name">Year</td><td>2011</td></tr>
<tr><td class="name">Storey</td><td>3</td></tr>
<tr><td class="name">Title</td><td><a href="http://gov.kz/premera/">Premier</a></td></tr>
<tr><td class="name">Condition</td><td>Renovated</td></tr>
</tbody>
</table>
在此 table 中,数据的组织方式是每行包含 2 个包含在 <td>
标签中的单元格。第一个单元格包含有关数据类型的信息。例如房屋的建造年份。第二个单元格本身包含年份信息,即 2011 年。
我正在尝试从第 2 个单元格中提取信息(它是:2011、3、Premier、Renovated)
我使用这个 Xpath 表达式:
//table[@class="info"]//td[2]/text()
收到输出(错误):
2011
3
Renovated
期望的输出:
2011
3
Premier
Renovated
如您所见,第 3 行的第 2 个 <td>
而不仅仅是文本包含 link,因此此行的信息丢失.因此,未收到所需的字符串 "Premier"。
有时行中的单元格包含 links,有时它只是纯文本。在这两种情况下(link 或仅给出文本),有什么方法可以从第二个单元格中提取数据?
只需在 text()
:
前添加第二个正斜杠
//table[@class="info"]//td[2]//text()
这将从您选择的 td
的所有子节点中获取文本节点
我有这个htmltable:
<table class="info">
<tbody>
<tr><td class="name">Year</td><td>2011</td></tr>
<tr><td class="name">Storey</td><td>3</td></tr>
<tr><td class="name">Title</td><td><a href="http://gov.kz/premera/">Premier</a></td></tr>
<tr><td class="name">Condition</td><td>Renovated</td></tr>
</tbody>
</table>
在此 table 中,数据的组织方式是每行包含 2 个包含在 <td>
标签中的单元格。第一个单元格包含有关数据类型的信息。例如房屋的建造年份。第二个单元格本身包含年份信息,即 2011 年。
我正在尝试从第 2 个单元格中提取信息(它是:2011、3、Premier、Renovated)
我使用这个 Xpath 表达式:
//table[@class="info"]//td[2]/text()
收到输出(错误):
2011
3
Renovated
期望的输出:
2011
3
Premier
Renovated
如您所见,第 3 行的第 2 个 <td>
而不仅仅是文本包含 link,因此此行的信息丢失.因此,未收到所需的字符串 "Premier"。
有时行中的单元格包含 links,有时它只是纯文本。在这两种情况下(link 或仅给出文本),有什么方法可以从第二个单元格中提取数据?
只需在 text()
:
//table[@class="info"]//td[2]//text()
这将从您选择的 td