在较新版本的AngleSharp中,CssNode相当于什么?



我有这样一段代码,可以在 AngleSharp 0.9.3 中工作:

public IEnumerable<CssNode> FindNodesInStyle(StyleContext context)
{
if (context is InternalStyleContext)
{
var nodes = new HashSet<CssNode>();
var styleSheet = context.ProcessedStyleSheet;
var rules = this.GetRules(styleSheet);
foreach (var rule in rules)
{
var node = styleSheet.ParseTree.GetAssociatedNode(rule);
if (node != null && !nodes.Contains(node))
{
nodes.Add(node);
}
}
return nodes;
}
else
{
return new CssNode[] { };
}
}

我正在尝试将我的 AngleSharp 更新到最新版本 - 目前为 0.12.1 - 并且 CssNode 已被删除。 我已经导入了AngleSharp.cs,但它也不包含CssNode类。

不幸的是,CSS比这复杂得多(即AngleSharp在v0.10之前(。如果您寻找一种几乎可用于任何 CSS 的类型,最接近的类型将是IStyleFormattable.否则,如果您只寻找规则,那么ICssRule适合您。

不确定你想用你的代码做什么 - AngleSharp.Css已经有助手,例如,获取所有规则(与后代等 - 也遵循媒体规则和类似的规则,如果它们适用(。

如果您提供更多详细信息,您将尝试实现的目标,我将相应地更新答案。

希望对您有所帮助!

最新更新