如何使用 AngleSharp 从 html 字符串中获取所有评论标签?

How to get all comment tags from html string using AngleSharp?

如何使用 AngleSharp 从 HTML 字符串中找到所有评论标签。评论可以是单行,也可以是多行。

<!-- Single line comment. -->

<!-- Multi-
ple line comment.
Lots      '""' '  "  ` ~ |}{556             of      !@#$%^&*())        lines
in
this
comme-
nt! -->

您可以使用 AngleSharp.Extensions.ApiExtensions 中的 Descendents 扩展方法检索评论标签。注释不是元素,因此您不能像往常一样查询它们,但此扩展方法允许您检索特定类型的节点。

IEnumerable<IComment> comments = document.Descendents<IComment>();

示例:

using AngleSharp;
using AngleSharp.Parser.Html;
using AngleSharp.Dom; // For IComment
using AngleSharp.Extensions; // For Descendents

var parser = new HtmlParser();
var source = @"<!-- Single line comment. -->
               <!-- Multi-
               ple line comment.
               Lots      '""""' '  ""  ` ~ |}{556             of      !@#$%^&*())        lines
               in
               this
               comme -
                nt!-->";
var document = parser.Parse(source);

// Get all comment nodes
IEnumerable<IComment> comments = document.Descendents<IComment>();

// Get the text in the comment nodes
foreach (IComment comment in comments)
{
    var textValue = comment.TextContent;
    ...
}