【问题标题】:How to divide data extracted from table cells using Xpath?如何使用 Xpath 分割从表格单元格中提取的数据?
【发布时间】:2015-11-29 10:05:02
【问题描述】:

我有这个 html 表格:

<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">Area</td><td>170</td></tr>
    <tr><td class="name">Condition</td><td>Renovated</td></tr>
    <tr><td class="name">Bathroom</td><td>2</td></tr>
</tbody>
</table>

在此表中,数据的组织方式是每行包含两个包含在&lt;td&gt; 标记中的单元格。第一个单元格包含有关数据类型的信息。例如房屋建造年份。第二个单元格包含年份信息本身,即 2011。

我想以数据类型和信息被划分并相互对应的方式提取数据。我想以这种方式提取数据类型和信息:

Year: 2011
Storey: 3
Area: 170
Condition: Renovated
Bathroom: 2

我想让每一行和两个单元格能够分别访问,这样我就可以将它们放在 excel 表中,并将数据类型放在 1 列中,将信息放在第 2 列中。

现在我有这个 Xpath 代码:

//table[@class="info"]//tr//td/text()

它以这种精确的格式在单流中返回信息:

Year
2015
Storey
3
Area
170
Condition
Renovated

我想相应地提取行和单元格,以便将它们放入excel中:

Year (1st excel column): 2011 (2nd excel column)
Storey (1st excel column): 3 (2nd excel column)

如何使用 Xpath 做到这一点?

【问题讨论】:

  • AFAIK,你不能只使用 xpath 来做到这一点。你如何执行xpath? (通过 XSLT/XQuery/某种编程语言),什么是 xpath 版本? (1/2/3)

标签: html parsing xpath


【解决方案1】:
//tr/join(td/text(),": ")

这可能会返回您需要的内容。

text() 可能是可选的,具体取决于您使用的工具。
当您使用 Xidel 时,它是可选的。见this demo

【讨论】:

    猜你喜欢
    • 2016-03-04
    • 2014-11-28
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 2016-03-04
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多