cómo reemplazar
etiqueta con
etiqueta utilizando HtmlAgilityPack?

c# html-agility-pack

Pregunta

¡Bastante extraño! Cuando cargue y reemplace con una cadena vacía usando

 var document = new HtmlDocument();
    document.LoadHtml(data); 
    document.DocumentNode.OuterHtml.Replace("<tbody>", "");

Esto funciona bien y <tbody> se eliminará.

De la misma manera cuando intento reemplazar <br> con <br/> usando,

document.DocumentNode.OuterHtml.Replace("<br>", "<br/>");

No funciona :(

también intentado,

 var brTags = document.DocumentNode.SelectNodes("//br");
            if (brTags != null)
            {
                foreach (HtmlNode brTag in brTags)
                {
                    brTag.OuterHtml = "<br/>";
                    // brTag.Name= "br/"; - > Also this one :(
                }
            }

¿La función replace () de HTMLAgilityPack no funciona para las etiquetas de cierre automático?

Respuesta aceptada

document.OptionWriteEmptyNodes = true;

Hará el truco para ti!


Respuesta popular

No tiene que reemplazar <br> por <br/> manualmente, si necesita cerrar el nodo, simplemente indique a la biblioteca que lo haga, por ejemplo, esto:

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml("<br/>");
doc.Save(Console.Out);

dará salida a esto:

<br>

y esto

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml("<br/>");
doc.OptionWriteEmptyNodes = true;
doc.Save(Console.Out);

dará salida a esto:

<br />


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é