¿Cómo obtener el texto interno solo sin las etiquetas secundarias utilizando HtmlAgilityPack?

c# html-agility-pack

Pregunta

Tengo una página HTML como abajo. Necesito tomar el 'blah blah blah' solo de la etiqueta 'span'.

<span class="news">
blah blah blah
<div>hello</div>
<div>bye</div> 
</span>

Esto me da todos los valores:

div.SelectSingleNode(".//span[@class='news']").InnerText.Trim();

Esto me da nulo:

div.SelectSingleNode(".//span[@class='news']/preceding-sibling::text()").InnerText.Trim();

¿Cómo obtengo el texto antes de la etiqueta 'div' usando HtmlAgilityPack?

Respuesta aceptada

Tu segundo intento fue bastante cercano. Use /text() lugar de /preceding-sibling::text() , porque el nodo de texto es hijo del span[@class='news'] no hermano (ni precedente ni siguiente):

div.SelectSingleNode(".//span[@class='news']/text()")
   .InnerText
   .Trim();



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué