【问题标题】:XPath concatenate table row cellsXPath 连接表格行单元格
【发布时间】:2014-01-29 15:29:09
【问题描述】:

我正在尝试使用 XPath 从 HTML 表中为每一行提取连接的单元格。例如,如果我有一个类似的表

<table>
<tr><th>FirstName</th><th>LastName</th><th>Title</th></tr>
<tr><td>First1</td><td>Last1</td><td>Title1</td></tr>
<tr><td>First2</td><td>Last2</td><td>Title2</td></tr>
<tr><td>First3</td><td>Last3</td><td>Title3</td></tr>
</table>

我想提取这些数据,以便获得每一行中人员的全名

First1 Last1
First2 Last2
First3 Last3

我可以单独获取每一列,然后稍后将它们合并到我的代码中,但我更愿意在单个 XPath 查询中完成这项工作。我尝试过使用 concat,但不知道在哪里使用 concat。

提前致谢。

【问题讨论】:

  • 你能贴出你试过的代码吗?
  • 我尝试了 concat(//tr/td[1]/text(),' ',//tr/td[2]/text()) 和其他几种组合。上面的只给了我第一行,但不是所有行。其他组合在语法上都不正确。

标签: xpath


【解决方案1】:

您尝试的连接仅连接 xpath,而不连接节点。如果要选择多个节点,则应在它们之间使用|

//tr//td[1] | //tr//td[2]

【讨论】:

  • 试过了,但它在不同的行中返回它们并且不进行连接。
  • 你能发布整个代码块吗?我猜你正在使用选择单个节点或其他东西。
  • 我只是在测试页面上使用了一个 XPath 插件,而我目前唯一的代码就是 XPath。我在 Firefox 上使用 XPath 检查器。
  • 你可以试试 //tr//td[not(position() >2)] 吗?
  • 试过 //tr/td[1]|//tr/td[2] 和 //tr//td[1]|//tr//td[2] 都返回它们在单独的行中。
猜你喜欢
  • 2022-01-03
  • 2014-12-14
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
  • 1970-01-01
  • 2019-03-15
  • 1970-01-01
  • 2010-10-02
相关资源
最近更新 更多