2010-09-02 18 views
8

Quale query XPATH è possibile utilizzare per ottenere i valori dal primo e dal terzo tag <td> per ogni riga in una tabella html.Come ottenere i dati della tabella dalle tabelle utilizzando xpath

La query XPATH ho usato utilizzo è

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

Questo restituisce solo i valori nel primo tag <td> per ogni riga in una tabella.

ESEMPIO

ci si aspetterebbe di ottenere i valori bob, 19, jane, 11, Cameron e 32 dalla tabella sottostante. Ma mi sto solo prendendo in giro, 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

Buona domanda (+1). Vedi la mia risposta per un'altra soluzione, che potrebbe essere più efficiente. –

risposta

3

Prova

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

mi ricordo di aver fatto in passato e l'ho trovato piuttosto fastidioso, perché è brutto e prolisso

+0

risposta giusta, ma non vedo la bruttezza. Anche questo è XPath 1.0, ma in XPath 2.0 si potrebbe usare '/ table/tr/(td [1] | td [3])' –

+0

@Alejandro - sembra scorretto. Probabilmente intendevi qualcosa come l'espressione nella mia risposta? :) –

+0

@Dimitre: la risposta di jakenoble funziona per me. Anche la mia espressione XPath 2.0. –

8

@ risposta di jakenoble:

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

è corretto.

Un'espressione XPath equivalente che evita all'operatore | (unione) e può essere più efficiente è:

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