HtmlAgilityPack: eliminar etiquetas, reemplazar con espacio en blanco

c# html-agility-pack

Pregunta

string url = "http://www.myurl.xxx";
HtmlWeb webGet = new HtmlWeb();
HtmlDocument doc =  webGet.Load(url);

foreach(var script in doc.DocumentNode.Descendants("script").ToArray())
   script.Remove();


foreach(var style in doc.DocumentNode.Descendants("style").ToArray())
   style.Remove();

 string mtext =  doc.DocumentNode.InnerText;

La cadena mtext no tiene espacio entre el texto donde se han eliminado las etiquetas, ¿cómo puedo 'Eliminar' Y reemplazar las etiquetas eliminadas con un salto de línea o "" para todas las instancias de etiquetas?

Respuesta aceptada

Estás eliminando los nodos. En lugar de esto, debes reemplazar esos nodos con los nuevos. Esto reemplazará sus nodos <script> y <style> con un símbolo de espacio:

foreach (var node in doc.DocumentNode.SelectNodes("//script|//style").ToArray())
{
    var replacement = doc.CreateTextNode(" ");
    node.ParentNode.ReplaceChild(replacement, node);
}


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é