【问题标题】:How to reject specify HTML tags by using css or xpath selector如何使用 css 或 xpath 选择器拒绝指定 HTML 标签
【发布时间】:2015-09-02 13:35:19
【问题描述】:

我想使用 css 或 xpath 选择器删除 stylescript 标签及其内容。

这是一个 HTML 示例:

<html>
  <head>
    <title>test</title>
    <style>
      // style
    </style>
    <script>
      /* some script */
    </script>
  </head>
  <body>
    <p>text</p>
    <script>
      /* some script */
    </script>
    <div>foo</div>
  </body>
</html>

我想得到这样的 HTML:

<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>text</p>
    <div>foo</div>
  </body>
</html>

我认为我可以使用此代码获得不包含 &lt;script&gt; 标记的 HTML,但不知何故,该代码仅复制了 HTML。

doc = Nokogiri::HTML(open("foo.text"))
doc.css(":not(script)").to_html

如何启用我想要的行为?

【问题讨论】:

    标签: javascript css ruby xpath nokogiri


    【解决方案1】:

    更简单就是:

    doc.search('style,script').remove
    

    【讨论】:

      【解决方案2】:

      试试以下几行:

      doc.search('.//style').remove
      doc.search('.//script').remove
      

      【讨论】:

      • 欢迎来到 Stack Overflow。由 OP 选择最适合他们需求的答案。他们可以选择在短时间内更改他们的选择。成为第一没有任何意义,重要的是在 OP 心目中成为更好的答案。
      猜你喜欢
      • 2023-03-21
      • 2011-02-06
      • 1970-01-01
      • 2023-01-29
      • 1970-01-01
      • 2018-01-16
      • 1970-01-01
      • 2021-09-16
      • 2022-12-20
      相关资源
      最近更新 更多