HtmlAgilityPack: удалить теги, заменить пробелами

c# html-agility-pack

Вопрос

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;

Строка mtext не имеет интервала между текстом, где теги были удалены, как я могу удалить «И заменить удаленные теги на разрыв строки или« »для всех экземпляров тегов?

Принятый ответ

Вы просто удаляете узлы. Вместо этого вы должны заменить эти узлы новыми. Это заменит ваши узлы <script> и <style> символом пробела:

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


Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему