【发布时间】:2019-10-12 15:17:40
【问题描述】:
我在字符串中有 HTML,需要使用 C# 根据其 CSS 样式提取特定节点。过去,我使用 HtmlAgilityPack 解析 HTML。这很好地解析了 HTML,并以有组织的方式为我提供了所有元素。我什至可以按属性过滤或查询。问题是它不“理解” CSS 层次结构是如何工作的。 CSS 可以是内联的,位于文件的开头,也可以位于父节点中。浏览器足够智能,可以知道元素的最终呈现应该是什么。 HtmlAgilityPack 可以为我提供特定元素的属性,但我看不到它可以告诉我元素的最终样式是什么。例如,一个元素可能没有任何属性,但具有基于更复杂的 CSS 逻辑的特定样式(来自父节点的样式等)
如何在不使用无头浏览器的情况下查询内存中的 HTML,以查找最终呈现(是否要在浏览器中呈现)具有特定样式的元素? (类似于 jQuery 的做法,例如:$('[color="#0000ff"]')
我不想要很多复杂的正则表达式或类似的。
谢谢,
【问题讨论】:
标签: c# jquery css html-agility-pack