Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get table data from tables using xpath

Tags:

xpath

What XPATH query could i use to get the values from the 1st and 3rd <td> tag for each row in a html table.

The XPATH query I have used use is

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

This only returns the values in the first <td> tag for each row in a table.

EXAMPLE

I would expect to get the values bob,19,jane,11,cameron and 32 from the below table. But am only getting bob,jane,cameron.

<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>
like image 516
Dean Avatar asked Sep 02 '10 08:09

Dean


1 Answers

@jakenoble's answer:

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

is correct.

An equivalent XPath expression that avoids the | (union) operator and may be more efficient is:

/table/tr/td[position() = 1 or position() = 3]
like image 56
Dimitre Novatchev Avatar answered Sep 19 '22 03:09

Dimitre Novatchev