Dean
Dean

Reputation: 81

How to get table data from tables using 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>

Upvotes: 8

Views: 32875

Answers (2)

Dimitre Novatchev
Dimitre Novatchev

Reputation: 243599

@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]

Upvotes: 8

Jake N
Jake N

Reputation: 10583

Try

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

I remember doing this in the past and found it rather annoying because it is ugly and long-winded

Upvotes: 3

Related Questions