HtmlAgilityPack: elimina los nodos secundarios pero conserva el texto interno del nodo principal sin XPath

c# html-agility-pack

Pregunta

Tengo html como:

<div class="asd"> lalala </br> lalala2 <div> aaaaa </div> </div>

Necesito obtener solo "lalala \ n lalala2" sin usar XPath.

Respuesta aceptada

Puedes crear un método de extensión para HtmlNode

public static class HtmlHelper
{
    public static string InnerText(this HtmlNode node)
    {
        var sb = new StringBuilder();
        foreach (var x in node.ChildNodes)
        {
            if (x.NodeType == HtmlNodeType.Text)
                sb.Append(x.InnerText);

            if (x.NodeType == HtmlNodeType.Element && x.Name == "br")
                sb.AppendLine();
        }

        return sb.ToString();
    }
}

solo encuentra el nodo y llama a node.InnerText ()



Related

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é