如何使用Xpath划分从表格单元格中提取的数据?

时间:2015-11-29 10:05:02

标签: html parsing xpath

我有这个html表:

 <tbody>
            <div ng-repeat="caterory in categories">
              <tr>{{caterory.name}}<tr>
              <tr ng-repeat="room in caterory.Rooms">
                <td>{{room.roomNo}}</td>
                <td ng-repeat="schedule in room.Schedule">{{schedule.status}}</td>
              </tr>
            </div>
          </tbody>

在此表中,数据的组织方式使每行包含<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> 个标记中包含的2个单元格。第一个单元格包含有关数据类型的信例如房屋建造年份。第二个单元格包含年份信息,即2011年。

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

<td>

我希望每行和两个单元格能够单独访问,因此我可以将它们放在excel表中,并将数据类型放入1列,将信息放入第2列。

现在我有了这个Xpath代码:

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

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

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

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

Year
2015
Storey
3
Area
170
Condition
Renovated

如何使用Xpath进行操作?

1 个答案:

答案 0 :(得分:0)

//tr/join(td/text(),": ")

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

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