使用 Ruby 从 HTML 文档中删除文本

2023-11-27

有很多关于如何使用 Ruby 从文档中删除 HTML 标签的示例,Hpricot 和 Nokogiri 都有 inside_text 方法,可以轻松快速地为您删除所有 HTML。

我想做的恰恰相反,从 HTML 文档中删除所有文本,只留下标签及其属性。

我考虑过循环遍历文档,将inner_html设置为nil,但实际上你必须反向执行此操作,因为第一个元素(根)具有文档其余部分的inner_html,所以理想情况下我必须从最里面的元素并将inner_html设置为nil,同时向上移动到祖先。

有谁知道一个巧妙的小技巧可以有效地做到这一点?我在想也许正则表达式可以做到这一点,但可能不如 HTML 标记器/解析器那么有效。


这也有效:

doc = Nokogiri::HTML(your_html)
doc.xpath("//text()").remove
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Ruby 从 HTML 文档中删除文本 的相关文章

  • 常见的电子邮件客户端是否会预取链接而不是图像?

    尽管我知道很多电子邮件客户端会预取或以其他方式缓存图像 我不知道有任何预取常规链接 例如 a href somelinkhere some link a 这是某些电子邮件的做法吗 如果是 是否存在某种不跟随类型rel可以添加到链接中以帮助防
  • 不透明div内的透明文本

    我有一个背景图像 上面有一个白色的 div 我希望该 div 内的文本是透明的 以便您可以 透过 背景图像 这有可能吗 应该看起来像这样 您需要将其用于您的文本CSS webkit text fill color transparent
  • 将 ASP.NET TextBox 呈现为 HTML5 输入类型“Number”

    当 ASP NET TextBox 呈现时 它会生成
  • 如何将 rubocop 与 Rake 集成?

    rubocop https github com bbatsov rubocop是 Ruby 的代码风格检查器 与 rubocop 类似的工具 Cane 可以与 Rake 集成 https github com square cane in
  • 如何使用 JQuery/Javascript 更改悬停时 div 的内容

    我正在尝试使用 JQuery 更改将鼠标悬停在 div 上时的内容 我已经看到了有关堆栈溢出的答案 但我似乎无法让它工作 我试过了 imgDiv mouseover function tdiv textContent hovering fu
  • 删除整个表格行

    有没有办法删除整个表格行 穿过整个单元格 而不仅仅是文本 我尝试过申请 text decoration line through 在列和行级别 但这只会删除文本 而不是整个单元格 有没有办法打整排 如果所有行的高度相同 最简单的方法可能是应
  • 自动移动站点重定向

    我刚刚制作了我的第一个 jQuery 移动网站 我想让使用手机查看我的 完整网站 的人自动转移到 移动网站 如果需要 还可以单击链接查看完整站点 我不知道从哪里开始 有一些我可以使用的 JavaScript 吗 如果您想查看这些网站的外观
  • 如何从表格的下拉菜单中删除先前选择的选项?

    我正在 Angular 7 上制作一个项目 它有一个表格 其中有一列有下拉菜单 下拉列表包含各种语言 当在特定行中选择一种语言时 它不应出现在后续行的下拉列表中 我怎么做 我尝试使用 splice 从数组中删除所选语言 但是 当它删除对象时
  • Html 文本输入撤消不起作用

    我遇到一个问题 html 文本框和文本区域的撤消功能 ctrl z 和右键单击 gt 撤消 被禁用 这种情况发生在 ASP NET 生成的页面上 其中包含大量 Silverlight JavaScript JQuery 和 Ajax 大约
  • Javascript:自动点击按钮?

    我正在学习如何编写 chrome 扩展 而且我对 javascript 还很陌生 这是一些 html div class button data a class button1 whiteColor href http link1 com
  • IE6 CSS 显示:表格修复?

    我正在开发一个网络应用程序 不幸的是它必须与有史以来最糟糕的软件一起工作 是的 即 ie6 我真的很喜欢CSSdisplay table and display table cell属性 但当然它在 ie 中不起作用 有没有人找到解决这个问
  • 在 Angular 中,如何动态地将某些单词包装在另一个 html 元素中?

    我有这个简单的角度组件 Component selector my component template p someString p export class MyComponent Input someString string som
  • 安装 Sass 时出错(Ruby 2.5.0.1、MSYS2 20161025.0.0)

    我尝试安装 Sass 我安装了Ruby and MSYS2在此之前 来自所有人的最新消息巧克力味 https chocolatey org choco install ruby choco install msys2 看来它们已正确安装 r
  • 提交和 onclick 不能一起工作

  • CSS 停止表格行内的分页符

    我试图避免在可能超过一页的 HTML 表的行内出现分页符 我正在使用 Internet Explorer 打印预览以及 BCL EasyPDFSDK 转换为 PDF 来测试这一点 我将以下 CSS 样式以各种组合应用到 td 元素 但对于每
  • Rails 应用程序中的持久 TCP 连接

    我有一个在服务器上运行的第三方应用程序 它对客户端进行身份验证并返回响应 我的问题是 对于我收到 Rails 应用程序的每个请求 我都需要建立 TCP 连接并获取数据 是否可以有一个持久连接 以便我可以减少建立连接的开销 我希望你使用的是
  • 如何在网格视图的单元格中插入换行符?

    我想知道如何在网格视图的单元格中添加换行符 现在 我把 1 1 1 然而 这呈现为 1 1 1 如何修复换行符 以便每个数字显示在自己的行上 Add HtmlEncode False to asp BoundField并且在正文中 应该有
  • Ruby 反向柯里化:这可能吗?

    关于 Ruby 1 9 x 中的柯里化 我一直在某些地方使用它 并且可以像基本上支持 proc 参数的默认参数一样进行翻译 p proc x y z x y z p curry 1 gt returns a lambda p curry 1
  • RSpec 抛出分段错误

    有时我的测试套件会无缘无故地抛出分段错误 这是输出 Users Test rvm gems ruby 1 9 3 p392 gems activerecord 3 2 9 lib active record relation query m
  • 禁用 Materialise Carousel 上的触摸

    看起来以前没有人问过这个问题 因为我几乎在互联网上寻找一个非常简单的答案 如何禁用在物化轮播上向左 向右滑动的功能 在 Materialize js 添加 编辑 var allowCarouselDrag true value functi

随机推荐

  • Gradle 没有以正确的方式寻找依赖关系

    我正在尝试将 moko 添加到 gradle 上的 kotlin multiplataform 的依赖项 org gradle internal resolve ArtifactNotFoundException 找不到 mvvm live
  • 什么是实体?为什么叫实体?

    在谈论实体框架时 什么是实体 它是数据存储的内存中表示 例如 SQL 表 实体足够聪明 可以跟踪更改并将这些更改应用到数据存储中 还有什么其他的吗 它来自系统工程领域 他们使用实体关系图设计系统的工具 他们所做的首先是布置实体 例如客户 采
  • 可以在 Javascript 中比较两个图像吗?

    有没有办法比较两个具有不同文件名的图像文件 所以我想看看它们是否与 javascript 相同 这可能吗 这样做的用途 我有一个图像库需要在灯箱中弹出 当灯箱打开时 我将连接到回调以检查重复的图像 并在找到时将它们从灯箱库中删除 这样用户就
  • 无法在 TypeScript 中从 Observable.bindNodeCallback(fs.readFile) 创建 observable

    我正在尝试使用rxjs 5用 TypeScript 编写 Node js 服务器 但在转换时遇到错误fs readFile其 rxjs 形式 我希望以下代码可以在 TypeScript 中运行 This is a JavaScript ex
  • 清除矩形不工作

    我正在用 javascript 做一个 Pong 游戏 以便学习制作游戏 并且我想让它面向对象 我无法得到clearRect上班 它所做的只是画一条越来越长的线 这是相关代码 function Ball this radius 5 this
  • 在C中将int转换为char

    现在我正在尝试在 C 编程中将 int 转换为 char 经过研究 我发现我应该能够这样做 int value 10 char result char value 我想要的是返回 A 0 9 返回 0 9 但我认为这会返回一个新行字符 我的
  • 如何检查变量或对象是否未定义?

    我一直以为我可以通过将未定义的变量与未定义的变量进行比较来检查它 但这是我在 chrome 控制台中收到的错误 我如何检查 jQuery 对象是否未定义 EDIT if jQuery 也给我带来了问题 EDIT 解决方案 if window
  • 使用 Google Analytics 进行 Flutter 日志事件

    我已经在我的 flutter 应用程序中设置了 Google Analytics 这一切似乎都按标准运行 数据通过并显示在分析控制台屏幕上 向用户显示 事件计数之类的事情 我看到默认事件是 user engagement screen vi
  • CakePHP 3.0 -> 查找条件之间

    是否可以执行 BETWEEN AND cakephp 2 5 中的条件类似于 cakephp 2 5 在 cakephp 2 5 中我写了类似的东西 conditions gt start date BETWEEN AND gt 2014
  • 如何使用 css 隐藏元素,同时仍将其保留在页面上?

    我试图隐藏页面上的一个元素 但我仍然希望它存在 我想要一个仍然可以单击的按钮 但我希 望它不可见 隐藏元素并保持页面位置的方法有3种 您可以获得有关之间的更多信息正常流量和css样式 即 opcity visibility 属性关系 能见度
  • java.lang.IllegalStateException:恢复下溢 - 恢复多于保存

    我在用rippleeffect library对于我的项目 但在Android Nougat and Marshmallow 应用程序因该库而崩溃 compile com github traex rippleeffect library
  • sqlite 将“dd.MM.yyyy”格式字符串转换为日期

    我的 android 上有一个 sqlite 数据库 其中有一个日期时间列 其中包含格式为 dd MM yyyy 的日期 这不是我的数据库 我无法更改日期格式 我想将数据库中的日期与代表第二个日期的字符串进行比较 但我尝试的一切都失败了 如
  • 带 mexCallMATLAB 的 Matlab mex 文件几乎比相应的 m 文件慢 300 倍

    我开始用 C 实现一些 m 文件以减少运行时间 m 文件生成 n 维点并计算这些点处的函数值 这些函数是用户定义的 它们作为函数句柄传递到 m 文件和 mex 文件 mex 文件使用 mexCallMATLAB 和 feval 来查找函数值
  • 如何在 Spring Data MongoDB 中使用乐观锁?

    我正在经历Spring Data MongoDB 参考文档我发现这些例子有点过于简单化 特别是我试图了解如何在并发环境中处理过时的数据 例如 假设我有以下实体 public class Person private final String
  • 在 Android 中将视图放置在 FrameLayout 中

    我想以编程方式在 FrameLayout 内添加视图 并将其放置在具有特定宽度和高度的布局内的特定点中 FrameLayout支持这个吗 如果不是 我应该使用中间 ViewGroup 来实现此目的吗 int x Can be negativ
  • 为什么我会收到 int.class 转换的类转换异常

    在下面的程序中我不明白为什么有ClassCastException为演员从int class Update 我应该指定我知道什么是原始类型 What I don t understand is why int class is provid
  • `zip` 和 `zip_longest` 之间是否有中间立场

    假设我有这三个列表 a 1 2 3 4 b 5 6 7 8 9 c 10 11 12 是否有一个内置函数 somezip a b 1 5 2 6 3 7 4 8 somezip a c 1 10 2 11 3 12 4 None 行为介于两
  • 如何使用 WiX 为关联文件设置图标?

    我的应用程序安装文件是使用 WiX 生成的 在 WiX 配置中 我关联了与应用程序一起使用的文件类型 如何在 WiX 配置中将图标与此文件类型相关联 FROM https www firegiant com wix tutorial get
  • 如何使用存储删除然后恢复非索引更改,而不会在 git 中出现合并冲突?

    我希望能够使用索引的当前状态运行项目测试 忽略未提交的工作更改 我稍后计划将其添加到预提交挂钩中 但是 我无法弄清楚如何以永远不会导致合并冲突的方式删除然后恢复非索引更改 我需要这个 因为它是由脚本运行的 所以完成后它不应该改变存储库状态
  • 使用 Ruby 从 HTML 文档中删除文本

    有很多关于如何使用 Ruby 从文档中删除 HTML 标签的示例 Hpricot 和 Nokogiri 都有 inside text 方法 可以轻松快速地为您删除所有 HTML 我想做的恰恰相反 从 HTML 文档中删除所有文本 只留下标签