HtmlAgilityPack: Supprimer les balises, Remplacer par des espaces

c# html-agility-pack

Question

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 chaîne mtext n'a pas d'espacement entre les textes où les balises ont été supprimées. Comment puis-je supprimer et remplacer les balises supprimées par un saut de ligne ou un "" pour toutes les occurrences de balises?

Réponse acceptée

Vous ne faites que supprimer les nœuds. Au lieu de cela, vous devez remplacer ces nœuds par les nouveaux. Ceci remplacera vos nœuds <script> et <style> par un symbole d'espace:

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



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi