HTMLAgilityPack analiza en el InnerHTML

c# html-agility-pack

Pregunta

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

Intento extraer Token2 del div

Consigo obtener Token1 y Token3 con:

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

¿Cómo puedo extraer directamente Token2 con HTMLAgilityPack?

Una opción sucia es reemplazar Token1 y Token2 por string.empty en doc.DocumentNode.SelectNodes ("// div"). InnerText, pero me imagino que se puede hacer de forma más limpia con HTMLAgilityPack ...

Respuesta experta

El texto está en los nodos de texto; por lo que debería poder ver "// div / text ()" y concatenar:

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


Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow