【发布时间】:2011-06-16 23:28:33
【问题描述】:
我正在使用这个脚本来解析 HTML 标签,以便将它们转换成
我的正则表达式和测试用例在这里:http://rubular.com/r/sBPAaWSdGQ
我想捕获 src="captureme.jpg" 和所有其他属性,以便我可以将它们移植过来。
我已经启动了正则表达式,但它还没有完成——我需要一些东西来捕获所有属性......即类、id 以下是我目前所拥有的。
class ToImageTag
def self.convert
Dir.glob("app/views/**/*").each do |filename|
next unless filename =~ /\.html\.erb$/
file = File.new(filename, "rw")
file.each_line do |line|
source = /(<\s*img\s*.*src=(.*?)(>|\/>))/.match(line)
source = src[1].split.first
image_tag = "<%= image_tag(\"#{source}\")"
line.gsub!(src[0], image_tag)
end
file.close
end
rescue => err
puts "Exception: #{err}"
end
end
【问题讨论】:
-
无法使用 nokogiri 解析 .html.erb 文件。刚刚试过。
-
使用 hpricot.com 这是 HAML 人员用来将 ERB 转换为 HAML 的方法。
-
"@Maletor "Cannot use nokogiri to parse .html.erb files.",这是因为 ERB 文件不是 HTML。它们类似于 HTML,但这对于解析器来说还不够好。你可以使用 SAX 处理器做你想做的事,它就像一个过滤器,立即输出所有非 img 标签,然后当你有
src参数时替换模板。
标签: html ruby-on-rails ruby regex ruby-on-rails-3