Как получить все теги комментариев из HTML-строки, используя AngleSharp?
Как можно найти все теги комментариев из строки HTML, используя AngleSharp. Комментарии могут быть как одиночными, так и несколькими строками.
<!-- Single line comment. -->
<!-- Multi-
ple line comment.
Lots '""' ' " ` ~ |}{556 of !@#$%^&*()) lines
in
this
comme-
nt! -->
1 ответ
Решение
Вы можете получить теги комментариев, используя 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;
...
}