通过 AngleSharp 检索 Css 规则

Retrieving Css Rules via AngleSharp

我正在尝试从 AngleSharp 解析的 html 文件中获取 css @page 规则。这很有趣,因为当我 debugging the stylesheet 时我可以获得规则 属性 但当我在编写代码时尝试访问它时却不能。我是否缺少 nuget 包?

string input = "<style type=\"text/css\">body,p,div {font-family:Times; font-size:10pt; text-align:justify;}" + "@page :first { size: letter portrait; margin-top:1in; margin-right: .5in; margin-bottom: .5in; margin-left:1in;}" + "@page :last { size: letter portrait; margin-top:200in; margin-right: 50in; margin-bottom: 50in; margin-left:1in;" + "</style>";

var config = Configuration.Default.WithDefaultLoader().WithCss();
var ctx = BrowsingContext.New(config);

IDocument document = await ctx.OpenAsync(req => req.Content(input));

IStyleSheet sheet = document.GetStyleSheets().First();

当 writing the code

时,我无法访问规则 属性

您应该转换为 ICssStyleSheetIStyleSheet 没有 CSS 规则。只有 ICssStyleSheet 有。

var sheet = document.GetStyleSheets().OfType<ICssStyleSheet>().First();

请注意,根据规范,样式表有多种可能。实际上,它只有 CSS.