2010-03-10 11 views

risposta

6

Finché si selezionano specificamente i nodi di testo, non è possibile. Perché semplicemente non esiste un nodo di testo nel primo <td>.

Quando si modifica l'espressione XPath su '//td', si ottengono i due nodi <td>. Usa il loro valore di testo in ulteriore elaborazione.

+1

Finii per trovare tutti i nodi 'td' e chiedendo .text su di loro. Non bello come fare tutto in un unico XPath ;-) ma funziona. – joeforker

+0

@joeforker: finché non si ha accesso a XPath 2.0 tutto lucido, questa è l'unica opzione possibile. :-) – Tomalak

7

Mentre @Tomalak perfettamente ragione, in XPath 2.0 si può usare:

//td/string(.)

e questo produce una sequenza di stringhe - ognuno contenente il valore di stringa di un corrispondente elemento td.

Quindi, nel tuo caso il risultato sarà quello desiderato:

"", "foo"

+1

+1. Questo fa esattamente ciò che fa la mia soluzione per XPath 1.0 - prende i nodi '' e poi usa il rispettivo valore di testo. – Tomalak

Problemi correlati