2013-06-15 4 views
0

J'essaie de sélectionner le noeud de texte "chaîne b" en utilisant XPath avec le HtmlAgilliyPack.Xpath avec htmlagilitypack

<div> 
    string a<br/> 
    string b<br/> 
    string c<br/> 
</div> 

Je ne suis pas sûr de savoir comment sélectionner le texte?

Cela ne fonctionnera pas //div/text(1)

Tout le monde a des suggestions?

+0

Vous ne pouvez pas sélectionner la chaîne b en utilisant xpath. Dites-nous un peu plus sur votre problème. – a1204773

+1

@Loclip bien sûr qu'il peut. –

+0

Même de différentes manières. ;-) –

Répondre

0

Essayez:

//div/br[1]/following-sibling::text()[1]' 

Le texte direct suivant après la première br.

+0

Cela fonctionne également. – Marcel

1

Il y a deux problèmes avec votre expression:

  • XPath commence à compter à 1, de sorte que vous voulez le deuxième noeud texte
  • text() est un filtre de noeud qui n'accepte pas d'arguments. Si vous souhaitez limiter au second nœud de texte, utilisez le prédicat [position() = 2] ou la version abrégée [2].

Utilisez cette expression:

//div/text()[2] 

nœuds de texte La sélection peut inclure des tracas, couper les espaces avant et et en omettant des noeuds de texte contenant des espaces uniquement dépend de la mise en œuvre.

+0

Merci! Cela fonctionne très bien! – Marcel

Questions connexes