Sam*_*uGG 3 c# css-parsing anglesharp
有了这个CSS:
.foo { background-size: 10px 20px; }
Run Code Online (Sandbox Code Playgroud)
还有这个 HTML:
<span class="foo"></span>
Run Code Online (Sandbox Code Playgroud)
还有这个 C#:
var parser = new HtmlParser();
var doc = parser.Parse("http://localhost/test.html");
var element = doc.QuerySelector("span.foo");
Run Code Online (Sandbox Code Playgroud)
如何获取与element相关的背景宽度和高度?
(目前我使用的是AngleSharp版本0.9.9)
首先,C#代码是错误的。您传递的字符串parser.Parse是 HTML 代码,而不是 URI。此外,您的代码不执行任何 CSS 解析 - 它仅使用 HTML 解析器。因此,让我们使用浏览上下文来获取您需要的一切。
var config = Configuration.Default.WithDefaultLoader().WithCss();
var context = BrowsingContext.New(config);
var document = context.OpenAsync("http://localhost/test.html").Result;
var element = document.QuerySelector("span.foo");
var style = document.DefaultView.GetComputedStyle(element);
var size = style.BackgroundSize;
Run Code Online (Sandbox Code Playgroud)
请记住,element如果不存在此类元素(没有与查询匹配的元素),则该元素可能为 null,并且该GetComputedStyle方法仅以有限的方式工作。另外,如果您的 CSS 是在外部样式表中定义的,请确保激活资源加载。
希望这可以帮助!