HtmlAgilityPack:删除标签,替换为空格

时间:2012-11-12 16:01:58

标签: 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在删除标记的文本之间没有间距,我怎样才能删除'并使用换行符替换已删除的标签或" "对于所有标签实例?

1 个答案:

答案 0 :(得分:5)

您只是删除节点。而不是这个,你应该用新的节点替换这些节点。这将使用空格符号替换<script><style>个节点:

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