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

时间:2017-05-12 18:46:44

标签: c# comments anglesharp

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

<!-- Single line comment. -->

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

1 个答案:

答案 0 :(得分:2)

您可以使用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;
    ...
}