2010-09-02 20 views
8

Zapytanie, które można użyć, aby uzyskać wartości z 1. i 3. zmiennej <td> dla każdego wiersza w tabeli html.Jak uzyskać dane tabeli z tabel przy użyciu xpath

XPATH zapytania Użyłem stosowanie jest

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

Powoduje to tylko zwracanie wartości w pierwszym znaczniku <td> dla każdego wiersza w tabeli.

Przykład

byłoby oczekiwać, aby uzyskać wartości BOB, 19, 11, Jane, Cameron i 32 z tabeli poniżej. Ale robię się tylko 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> 
+2

Dobre pytanie (+1). Zobacz moją odpowiedź na inne rozwiązanie, które może być bardziej efektywne. –

Odpowiedz

3

Spróbuj

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

Pamiętam, robi to w przeszłości i okazało się to dość irytujące, ponieważ jest brzydki i rozwlekły

+0

prawidłowa odpowiedź, ale nie widzę brzydoty. Również jest to XPath 1.0, ale w XPath 2.0 można użyć '/ table/tr/(td [1] | td [3])' –

+0

@Alejandro - wydaje się niepoprawny. Prawdopodobnie miałeś na myśli coś takiego jak wyrażenie w mojej odpowiedzi? :) –

+0

@Dimitre: odpowiedź jakenoble działa dla mnie. Również moje wyrażenie XPath 2.0. –

8

@ jakenoble za odpowiedź:

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

jest poprawna.

Równoważne wyrażenie XPath, że unika (Unia) operator | i może być bardziej wydajny jest:

/table/tr/td[position() = 1 or position() = 3] 
Powiązane problemy