如何以编程方式构建AngleSharp CSS(或HTML)DOM

本文关键字:HTML DOM CSS AngleSharp 编程 方式 构建 | 更新日期: 2023-09-27 18:26:53

我发现的所有AngleSharp示例和测试都是从解析CSS或HTML片段开始的,并访问DOM读取。如何以编程方式构建CSS(或HTML5)文档并将结果输出为字符串?

我想要这样的东西(伪代码):

var rule = new CssRule();
rule.Selector = ".my-class";
var style = new CssStyle("margin-top", "10px");
rule.add(style);

如何以编程方式构建AngleSharp CSS(或HTML)DOM

对于HTML,您需要使用W3C指定的API:

var context = BrowsingContext.New();
// get new document, not completely empty (has head and body)
var document = await context.OpenNewAsync();
var element = document.CreateElement("strong");
element.TextContent = "Hello World!";
document.Body.AppendChild(element);

由于这有点冗长,所以存在一些帮助程序(以扩展方法的形式)以使其更加流畅。此外,CreateElement可以作为一种通用方法使用,看起来像:

var paragraph = document.CreateElement<IHtmlParagraphElement>();

不幸的是,对于CSS来说,目前还不存在这样的API(工厂方法或类似方法)。操作它的唯一方法是使用字符串。这并不理想(我知道),我将在未来添加有用的扩展方法来提供这样的功能。