HtmlAgilityPack: rimuovi i tag, sostituisci con spazi bianchi

c# html-agility-pack

Domanda

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;

Il testo della stringa non ha spaziature tra il testo in cui i tag sono stati rimossi, come posso "Rimuovere" E sostituire i tag rimossi con un'interruzione di riga o "" per tutte le istanze dei tag?

Risposta accettata

Stai solo rimuovendo i nodi. Invece di questo dovresti sostituire quei nodi con quelli nuovi. Questo sostituirà i nodi <script> e <style> con un simbolo di spazio:

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



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché