2010-03-10 8 views

Répondre

6

Tant que vous sélectionnez des nœuds de texte spécifiquement, vous ne pouvez pas. Parce qu'il n'y a simplement aucun noeud de texte dans le premier <td>. Lorsque vous changez votre expression XPath en '//td', vous obtenez les deux nœuds <td>.Utilisez leur valeur de texte dans un traitement ultérieur.

+1

Je liquidée trouver tous les nœuds de 'td' et appelant .text sur eux. Pas aussi cool que de tout faire dans un grand XPath ;-) mais ça marche. – joeforker

+0

@joeforker: Tant que vous n'avez pas accès au XPath 2.0, c'est votre seule option. :-) – Tomalak

7

Bien que @Tomalak est parfaitement droite, dans XPath 2.0, on peut utiliser:

//td/string(.)

ce qui produit une séquence de chaînes - chacune contenant la valeur de chaîne d'un élément td correspondant.

Ainsi, dans votre cas, le résultat sera le souhaitee:

"", "foo"

+1

+1. Cela fait exactement ce que ma solution fait pour XPath 1.0 - il prend le '' nœuds, puis utilise leur valeur de texte respective. – Tomalak

Questions connexes