Analyse HTMLAgilityPack dans InnerHTML

c# html-agility-pack

Question

<div>
<b>Token1</b>
Token2
<b>Token3</b>
</div>

J'essaie d'extraire Token2 du div

Je parviens à obtenir Token1 et Token3 avec:

HtmlNodeCollection headerFooter = doc.DocumentNode.SelectNodes("//div//b");

Comment puis-je extraire directement Token2 avec HTMLAgilityPack?

Une option incorrecte consiste à remplacer Token1 et Token2 par string.empty dans doc.DocumentNode.SelectNodes ("// div"). InnerText, mais j'imagine que cela peut être fait de manière plus propre avec HTMLAgilityPack ...

Réponse d'expert

Le texte est dans les nœuds de texte; vous devriez donc pouvoir regarder "// div / text ()" et concaténer:

StringBuilder sb = new StringBuilder();
foreach (HtmlAgilityPack.HtmlTextNode node in
      doc.DocumentNode.SelectNodes("//div/text()"))
{
    sb.Append(node.Text.Trim());
}
string s = sb.ToString();


Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow