3

如何使用 AngleSharp 从 HTML 字符串中查找所有注释标签。注释可以是单行的,也可以是多行的。

<!-- Single line comment. -->

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

1 回答 1

3

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

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;
    ...
}
于 2017-08-23T23:49:42.213 回答