C# 如何在AngleSharp中仅加载特定元素?

C# 如何在AngleSharp中仅加载特定元素?,c#,html,parsing,anglesharp,C#,Html,Parsing,Anglesharp,我现在正在解析HTML5,我正在做的是用一点HTML来包装我想要解析的元素,使之成为一个有效的HTML5,然后在上面使用解析器,有更好的方法吗?也就是说,直接解析特定元素并验证结构确实是HTML5?Hm,举个小例子就好了。但是AngleSharp确实支持片段解析,这听起来像是您想要的东西。通常,当您设置将字符串转换为DOM节点的InnerHtml等属性时,也会应用片段解析 您可以使用HtmlParser类的ParseFragment方法来获取给定源代码中包含的节点列表。例如: using Ang

我现在正在解析HTML5,我正在做的是用一点HTML来包装我想要解析的元素,使之成为一个有效的HTML5,然后在上面使用解析器,有更好的方法吗?也就是说,直接解析特定元素并验证结构确实是HTML5?

Hm,举个小例子就好了。但是AngleSharp确实支持片段解析,这听起来像是您想要的东西。通常,当您设置将字符串转换为DOM节点的
InnerHtml
等属性时,也会应用片段解析

您可以使用
HtmlParser
类的
ParseFragment
方法来获取给定源代码中包含的节点列表。例如:

using AngleSharp.Parser.Html;
// ...

var source = "<div><span class=emphasized>Works!</span></div>";
var parser = new HtmlParser();
var nodes = parser.ParseFragment(source, null);//null = no context given

if (nodes.Length == 0)
    Debug.WriteLine("Apparently something bad happened...");

foreach (var node in nodes)
{
    // Examine the node
}
将事件聚合器与配置一起使用的最简单方法是实例化一个新的(提供的)
配置
。这里是一个示例片段

using AngleSharp;
// ...

var errorEvents = new SimpleEventAggregator();
var config = new Configuration(events: errorEvents);
请注意:报告的每个错误都是“官方”错误(根据W3C规范)。这些错误并不表示提供的代码是恶意的或无效的,只是说明某些内容不符合规范,必须应用回退

希望这能回答你的问题。如果没有,请告诉我


更新更新了AngleSharp最新版本的答案。

非常感谢!我会调查的。是的,我知道它不会做任何恶意检查,我有这个封面
using AngleSharp;
// ...

var errorEvents = new SimpleEventAggregator();
var config = new Configuration(events: errorEvents);