2010-09-02 14 views
8

Was XPATH Abfrage konnte ich verwenden, um die Werte aus dem 1. und 3. <td> Tag für jede Zeile in einer HTML-Tabelle zu erhalten.So erhalten Sie Tabellendaten aus Tabellen mithilfe von Xpath

Die XPATH Abfrage ich verwendet habe, ist die Verwendung

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

Dies gibt nur die Werte im ersten <td>-Tag für jede Zeile in einer Tabelle zurück.

Beispiel

Ich würde erwarten, dass der Wert bob zu bekommen, 19, jane, 11, cameron und 32 aus der folgenden Tabelle. Aber ich bekomme nur 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

Gute Frage (+1). Siehe meine Antwort für eine andere Lösung, die effizienter sein könnte. –

Antwort

3

Versuchen

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

ich in der Vergangenheit tun dies erinnern und fand es ziemlich ärgerlich, weil es ist hässlich und langatmige

+0

richtige Antwort, aber ich sehe nicht die Hässlichkeit. Auch das ist XPath 1.0, aber in XPath 2.0 könnte man '/ table/tr/(td [1] | td [3])' –

+0

@ Alejandro - scheint falsch. Wahrscheinlich meintest du so etwas wie den Ausdruck in meiner Antwort? :) –

+0

@Dimitre: jakenobles Antwort funktioniert für mich. Auch mein XPath 2.0 Ausdruck. –

8

@ jakenoble Antwort:

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

ist korrekt.

Ein äquivalenter XPath-Ausdruck, den die | (Vereinigung) Betreiber vermeidet und sein kann effiziente ist:

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