2012-08-29 89 views
1

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

回答

3

您可以找到類型爲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; 
相關問題