Ruby Rails HTML清理
我正在尝试清理一个HTML文件,但它无法正常工作。除了段落和换行标记外,我希望所有内容都是纯文本。这是我的清理代码(点表示我的类中与问题无关的其他代码):Ruby Rails HTML清理,ruby,ruby-on-rails-3,nokogiri,html-sanitizing,Ruby,Ruby On Rails 3,Nokogiri,Html Sanitizing,我正在尝试清理一个HTML文件,但它无法正常工作。除了段落和换行标记外,我希望所有内容都是纯文本。这是我的清理代码(点表示我的类中与问题无关的其他代码): 它不能正常工作。函数从中读取其输入,以及。它将留在CSS标记、JavaScript和HTML注释标记的主体中。它可能是在其他东西,以及我没有注意到离开。请建议如何彻底删除除段落和换行标记以外的所有CSS、HTML和JavaScript 我认为你不想对它进行消毒。清理去除HTML,留下文本,除了您认为合适的HTML元素。它旨在允许用户输入字段包
它不能正常工作。函数从中读取其输入,以及。它将留在CSS标记、JavaScript和HTML注释标记的主体中。它可能是在其他东西,以及我没有注意到离开。请建议如何彻底删除除段落和换行标记以外的所有CSS、HTML和JavaScript 我认为你不想对它进行消毒。清理去除HTML,留下文本,除了您认为合适的HTML元素。它旨在允许用户输入字段包含一些标记 相反,您可能想要解析它。例如,下面将以给定的html字符串打印
标记的文本内容
doc = Nokogiri::HTML.parse(html)
doc.search('p').each do |el|
puts el.text
end
您也可以使用CGI名称空间进行清理
require 'CGI'
str = "<html><head><title>Hello</title></head><body></body></html>"
p str
p CGI::escapeHTML str
需要“CGI”
str=“你好”
p str
p CGI::escapeHTML str
运行这个脚本,我们得到以下结果
$ ruby sanitize.rb
"<html><head><title>Hello</title></head><body></body></html>"
"<html><head><title>Hello</title></head><body></body></html>"
$ruby sanitize.rb
“你好”
“htmlheadtitleHello/title/headbody/body/html”
这看起来更像是解析而不是清理。哇,Scribd格式不方便处理。你能提供一个要点吗?
$ ruby sanitize.rb
"<html><head><title>Hello</title></head><body></body></html>"
"<html><head><title>Hello</title></head><body></body></html>"