【问题标题】:How to remove all hidden elements?如何删除所有隐藏元素?
【发布时间】:2014-09-03 21:47:47
【问题描述】:

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

我可以删除包含样式 display:none 或 visible:hidden 的元素,但是那些由于其 CSS 类而被隐藏的元素呢?有没有办法查看带有“item-description”类的DIV,并知道该类的样式表包含display:none?

【问题讨论】:

    标签: c# html css html-agility-pack


    【解决方案1】:

    使用 HtmlAgilityPack 无法知道这一点,因为它不考虑样式,只考虑 DOM。

    如果您想在加载 html 后真正能够处理样式,则必须

    • 解析css(遵循所有@imports和其他技巧)
    • 使用选择器将每个规则应用于每个 DOM 节点
    • 应用继承规则以查看隐藏或不隐藏的内容,具体取决于父层次结构和规则
    • 解决一致性问题(如果一个组件可见但其父级不可见怎么办?这将如何转化为您的最终文档?)
    • 我希望您选择了要模拟的浏览器,因为某些 css 规则将适用于特定的浏览器。
    • 我也希望你没有涉及页面上 DOM 的 javascript...

    我确定我忘记了更多的事情......不要去那里!有咕噜声!

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

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 1970-01-01
      • 2022-01-09
      • 2021-01-18
      • 1970-01-01
      • 1970-01-01
      • 2012-05-14
      • 1970-01-01
      • 2012-12-13
      相关资源
      最近更新 更多