Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用xpath从表中获取表数据_Xpath - Fatal编程技术网

如何使用xpath从表中获取表数据

如何使用xpath从表中获取表数据,xpath,Xpath,我可以使用什么XPATH查询来获取html表中每一行的第一个和第三个标记的值 我使用的XPATH查询是 /table/tr/td[1]| td[3] 这仅返回表中每一行的第一个标记中的值 范例 我希望从下表中得到bob、19、jane、11、cameron和32的值。但我只有鲍勃,简,卡梅隆 <table> <tr><td>Bob</td><td>Male</td><td>19</td></tr

我可以使用什么
XPATH
查询来获取html表中每一行的第一个和第三个
标记的值

我使用的
XPATH
查询是

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

这仅返回表中每一行的第一个
标记中的值

范例

我希望从下表中得到bob、19、jane、11、cameron和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>

BobMale19
珍妮菲11
卡梅隆马勒32
试试看


我记得以前做过这件事,觉得很烦人,因为它既难看又冗长

/table/tr/td[1]|/table/tr/td[3] 
是正确的

避免使用
|
(union)运算符且可能更有效的等效XPath表达式是:

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

回答正确,但我看不出其中的丑陋。这也是XPath1.0,但在XPath2.0中,您可以使用
/table/tr/(td[1]| td[3])
@Alejandro——这似乎是不正确的。也许你的意思与我回答中的表达类似?:)@迪米特:杰克·诺布尔的答案对我很有用。也是我的XPath2.0表达式。好问题(+1)。另一个可能更有效的解决方案,请参见我的答案。
/table/tr/td[position() = 1 or position() = 3]