是否可以使用 htmlagilitypack 库删除html中的注释文本?目前我正在从ASP到ASP.NET MVC进行一些迁移工作,在那里它使用 Regex 来做这些事情,只是想知道我可以在开始之前使用 htmlagilitypack 实现这一点尝试一下。
答案 0 :(得分: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;