通过函数或文本解析从文本框中删除文本部分

时间:2012-01-06 04:29:08

标签: html ruby-on-rails-3 parsing iframe

我有一个ROR应用程序,我想在Ruby中解析一点帮助。我有一个字段接受来自vimeo的嵌入代码。问题是标准代码除了<iframe>元素外还包含<p><iframe>。我想知道是否有一种快速方法可以删除保留<p>代码,同时删除<iframe src="http://player.vimeo.com/video/28638402?title=0&amp;byline=0&amp;portrait=0&amp;color=ffffff" width="400" height="170" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe><p><a href="http://vimeo.com/28638402">Youth Lagoon - Montana</a> from <a href="http://vimeo.com/tylertwilliams">Tyler T Williams</a> on <a href="http://vimeo.com">Vimeo</a>.</p>元素后面的代码。

例如:以下是vidmeo <iframe src="http://player.vimeo.com/video/28638402?title=0&amp;byline=0&amp;portrait=0&amp;color=ffffff" width="400" height="170" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>

提供的代码

我想删除

元素后的代码,并留下以下内容:

{{1}}

ruby​​中是否有一个函数,不像正则表达式解析那么复杂,可以帮助我吗?或者正在解析我最好的选择?我将非常感谢您的反馈,以及您可以提供的任何帮助。非常感谢您的时间和帮助!

1 个答案:

答案 0 :(得分:1)

我建议您使用Nokogiri之类的HTML解析器。像这样简单:

html   = '<iframe ...>...</p>'
doc    = Nokogiri::HTML(html)
iframe = doc.at_css('iframe').to_html

简单,可靠,而且足够快。