如何使用htmlagilitypack刪除html中的註釋文本

html-agility-pack

是否可以使用htmlagilitypack庫刪除html中的註釋文本?目前我正在做一些從ASP到ASP.NET MVC的遷移工作,在那裡它使用Regex 來做這些事情,並且只是想知道我可以在開始嘗試之前使用htmlagilitypack實現這一點。

一般承認的答案

您可以找到HtmlCommentNode類型的所有節點(表示HTML註釋)並將其從文檔中刪除。但請注意,AgilityPack也將<!DOCTYPE html>視為註釋節點。所以應該跳過這樣的節點進行刪除:

var doc = new HtmlDocument();
doc.LoadHtml(html);
var comments = doc.DocumentNode.DescendantNodes()
    .OfType<HtmlCommentNode>()
    .Where(c=> 
        !c.Comment.StartsWith("<!DOCTYPE", StringComparison.OrdinalIgnoreCase)
    ).ToList();

foreach (var comment in comments)
    comment.Remove();

var result = doc.DocumentNode.InnerHtml;



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因