【问题标题】:How can I remove the commented text in html using htmlagilitypack如何使用 htmlagilitypack 删除 html 中的注释文本
【发布时间】:2012-08-30 22:57:03
【问题描述】:

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

【问题讨论】:

    标签: html-agility-pack


    【解决方案1】:

    您可以找到所有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;
    

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 2018-07-01
      • 2014-04-21
      • 1970-01-01
      • 1970-01-01
      • 2016-09-05
      • 2015-06-08
      • 2015-03-28
      相关资源
      最近更新 更多