我有一个这样的代码块可以在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/

10-13 06:55