2010-09-02 248 views
8

什么XPATH查询可以用来从第一个和第三个<td>标记中获取html表格中每一行的值。如何使用xpath从表格中获取表格数据

我已经使用使用的XPATH查询

/table/tr/td[1]|td[3]

这只会返回表格中每行的第一个<td>标记中的值。

我期望得到的值鲍勃,19,简,11,从下表卡梅伦和32。但我只是变得笨手笨脚,卡梅隆。

<table> 
<tr><td>Bob</td><td>Male</td><td>19</td></tr> 
<tr><td>Jane</td><td>Feale</td><td>11</td></tr> 
<tr><td>Cameron</td><td>Male</td><td>32</td></tr> 
</table> 
+2

好问题(1)。查看我的答案以获得另一个解决方案,这可能更有效。 – 2010-09-02 12:59:58

回答

3

尝试

/table/tr/td[1]|/table/tr/td[3] 

我记得在过去这样做的,觉得这相当烦人,因为它是丑陋和啰嗦

+0

正确的答案,但我没有看到丑陋。此外,这是XPath 1.0,但在XPath 2.0中,您可以使用'/ table/tr /(td [1] | td [3])' – 2010-09-02 12:54:33

+0

@Ajjandro - 似乎不正确。你的意思可能是我的答案中的表达方式? :) – 2010-09-02 13:01:39

+0

@Dimitre:jakenoble的答案适合我。还有我的XPath 2.0表达式。 – 2010-09-02 14:24:19

8

@ jakenoble的回答

/table/tr/td[1]|/table/tr/td[3] 

是正确的

避开|(联合)操作员,并且可以更有效是一个等效XPath表达式:

/table/tr/td[position() = 1 or position() = 3]