html - Ruby:清理 HTML,使用 Hpricot 还是仅使用正则表达式?

标签 html ruby hpricot

我希望对 HTML 进行一些基本的清理。基本上想创建一个允许的标签白名单并拒绝任何其他标签。

在这种情况下,Hpricot 值得吗?它是否有一个我忽略的功能可以避免我重写轮子?或者最好只使用正则表达式编写标签白名单并通过它处理 HTML 文档?

正则表达式对于 HTML 来说真的很棘手,我知道很多专家都严格反对它——我只是在寻找阻力最小的途径。

最佳答案

阻力最小的路径乍一看似乎是一个正则表达式,但是当您通过它输入更多文本时,您会意识到它一次又一次地中断并为您做更多的工作。这就是为什么有经验的程序员知道使用 XML/DOM 解析器来解决这种常见问题的原因。

我建议您使用 Nokogiri 而不是 Hpricot,因为它更快且维护得更好。

https://github.com/rgrove/sanitize/

Sanitize 使用 Nokogiri 来完成您正在做的事情。

关于html - Ruby:清理 HTML,使用 Hpricot 还是仅使用正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5544734/

相关文章:

ruby - 使用 RSpec 3 测试 sidekiq perform_in

ruby-on-rails - Ruby on Rails 4 : Extract Oauth2 parameters from token response?

ruby-on-rails - ActionMailer 渲染一次,发送多次?

xml - 使用 JRuby (Hpricot?) 解析带有 <foo.bar> 标签的 XML

ruby - open-uri 没有将 http 重定向到 https

jQuery制作一个类来一次改变一个背景

html - 如何让HTML根据图片的设置高度自动裁边?

css - 设备 div 屏幕重叠,我该如何解决?

ruby-on-rails - Windows 上的 Rails Bundler 拒绝安装 hpricot(即使在手动安装 gem 时也会出现错误 : no such file to load -- hpricot)

javascript - jQuery hasClass 'is not a function'