2014-09-03 92 views
1

我正在寻找一种方法去除HTML文档中隐藏的所有元素。如何删除所有隐藏的元素?

我可以删除包含样式display:nonevisible:hidden的元素,但那些因为它们的CSS类而隐藏的元素呢?有没有办法看类似“item-description”的DIV,并知道这个类的样式表包含display:none

回答

1

由于HtmlAgilityPack没有考虑样式,所以没有办法知道这一点,只有DOM。

如果你想真正能够后处理的样式已经载入你的HTML必须

  • 解析CSS(以下所有@imports和其他技巧)
  • 通过应用每个规则的每个DOM节点使用选择器
  • 应用继承规则以查看隐藏或不隐藏,具体取决于父级别和规则
  • 解决一致性问题(如果组件是可见的而不是父级?如何转换成您的最终组件文件?)
  • 我希望你决定在你想要模拟的浏览器,因为一些CSS规则将适用于特定的浏览器。
  • 我也希望你没有的JavaScript触及页面上的DOM ...

我敢肯定,我忘了做更多的事情......不要去那里!有grues!

如果你真的想在C#中得到这个结果,也许嵌入一个渲染引擎,然后通过javascript查询它将是更好的方法。