我有一个这样的代码块可以在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.Css,但是它也不包含CssNode类。
最佳答案
不幸的是,CSS比这复杂得多(即AngleSharp v0.10之前的版本)。如果您寻找几乎可以用于任何CSS的类型,则最接近的类型是IStyleFormattable
。否则,如果您仅查找规则,则ICssRule
将适合您。
不确定要使用代码做什么-AngleSharp.Css已经可以帮助您,例如为您获取所有规则(包括后代等)-遵循媒体规则和仅适用于它们的类似规则。
如果您提供更多详细信息,那么您将尝试达到的确切效果将得到相应的更新。
希望有帮助!
关于c# - 在较新版本的AngleSharp中,CssNode等于什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57480472/