1

是否可以使用htmlagilitypack库删除 html 中的注释文本?目前我正在做一些从 ASP 到 ASP.NET MVC 的迁移工作,它使用Regex来处理这些事情,只是想知道在开始尝试之前我可以使用htmlagilitypack实现它。

4

1 回答 1

3

您可以找到所有类型的节点HtmlCommentNode(代表 HTML 注释)并将其从文档中删除。但请注意,AgilityPack 也将 eg<!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;
于 2012-08-30T14:57:03.467 回答