javascript - 如何使用 css 或 xpath 选择器拒绝指定 HTML 标签

标签 javascript css ruby xpath nokogiri

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

这是一个 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>

我以为我可以获得不包含 <script> 的 HTML带有此代码的标记,但不知何故代码仅复制了 HTML。

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

如何启用我想要的行为?

最佳答案

更简单的是:

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

关于javascript - 如何使用 css 或 xpath 选择器拒绝指定 HTML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30889512/

相关文章:

ruby-on-rails - 将服务器上的回形针路径文件名更新为 s3

javascript - 我应该如何修复 for 循环代码以求和范围?

javascript - 动态生成的元素触发的事件不会被事件处理程序捕获

CSS 正文标签高度仅限于可见区域

html - 如何用管道分离链接项

ruby-on-rails - 如果属性为 nil,则 ActiveRecord 默认值

Javascript 使用请求节点模块一次打印所有状态

javascript - 在WebGL中设置相机位置从开始到结束的动画

javascript - WebKit 有裁剪错误吗?

arrays - 将数组数组转换为 Ruby 中的哈希数组