XPath sélectionnez innertext
J'ai ce HTML/XML:
\t\t\t\t\t \r\n\t\t
<a href="/test.aspx">
<span class=test>
<b>blabla</b>
</span>
</a>
<br/>
this is the text I want
<br/>
<span class="test">
<b>code: 123</b>
</span>
<br/>
<span class="test"></span>
\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t
En C#4-je utiliser le HtmlAgilityPack lib pour sélectionner le Noeud avec XPath et obtenir la propriété InnerText. Cela permettra d'obtenir tous les le texte à l'intérieur du nœud. Comment puis-je obtenir uniquement le texte "ceci est le texte que je veux"?
/text()
ne renvoie \t\t\t\t\t \r\n\t\t
L'OP @pierre changé la question après qu'il a accepté la réponse mérite (l'OP) downvoting!
OriginalL'auteur peter | 2010-10-06
Vous devez vous connecter pour publier un commentaire.
À partir de l'exemple donné, ce XPath, vous obtiendrez tous les nœuds de texte en dessous de l'élément div, dans ce cas, test2.
Si vous pouviez donner plus de détails sur la question qu'on peut mieux être en mesure de vous aider. La Div contient 3 enfants: un élément span, un nœud de texte et un élément b. La durée et b ont chacun un nœud de texte de l'enfant. À l'aide de XPath, vous pouvez sélectionner des éléments seulement (/div/*), les nœuds de texte seulement (/div/text()) ou tous les types de nœuds (/div/node()).
EDIT: /text() ne retourne que vous au niveau de la racine des nœuds de texte. Dans ce cas, je m'attends à ce qu'il renvoie une liste de noeud contenant 3 nœuds de texte:
Vous êtes peut-être de ne sélectionner que le premier nœud de la résultante de la liste des nœuds?
Il y a quelques questions de bien-formation comme votre
<br>
devrait probablement être<br/>
.Salut, j'ai été en utilisant SelectSingleNode, c'est pourquoi il était de retour seulement /t/t/t/t/t. Je devrais avoir utilisé SelectNodes... doh. Merci
Pas de probs, heureux vous avez obtenu vers le bas 🙂
Comment cette réponse se rapporte à la question?
Oh! Désolé. @peter: ne modifiez pas la question. La bonne pratique consiste à poser une nouvelle question, sinon, d'autres personnes ne seront pas bénéficié de la réponse.
OriginalL'auteur Chris Cameron-Mills
@pierre: Vous ne devez pas modifier votre question, de sorte que les gens ne voient pas comment l'on a accepté la réponse se rapporte à la question!!!
La réponse à votre nouvelle question:
sélectionne le voulait nœud de texte (les guillemets sont de moi):
Quelle question? Je ne suis pas le OP. J'ai proposé une réponse à cette origine (vague) de la question. L'OP mis à jour sa question avec une plus complète fragment de HTML, j'ai mis à jour ma réponse (voir l'EDIT: l'article) afin de couvrir les nouveaux exemple. En fin de compte, il n'était même pas le XPath qui était inexact, mais il était en train de cueillir un seul nœud (le premier de la liste) au lieu de l'ensemble de la nodelist en C#
OriginalL'auteur Dimitre Novatchev
Sens: le nœud de texte entre les deux
br
éléments.OriginalL'auteur