2011-03-24 72 views
1

给定一个HTML电子邮件,我用下面的把衣服脱到只是文本:Rails - strip_tags - 没有捕获DOCTYPE?

body = body.gsub(/\\r\\n?/, "\n"); 
    body = body.gsub(/\\n\\n?/, "\n"); 
    body = simple_format(body) 
    body = strip_tags(body) 

但现在我看到的是一个标签获取传递这样的:

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"> 

它输出像这样:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 

任何想法为什么?

+0

也许我应该使用Hpricot – AnApprentice 2011-03-24 19:11:42

+0

而不是在您自己的问题中添加注释,修改问题本身。 – 2011-03-25 04:03:02

回答

1

我结束了使用角度来说,Hpricot于文字,伟大的工作

1

我猜测strip_tags看起来像已被废弃,认为doctype语句既不是标签也不是注释。您可以单独剥离出来:(!?/ < * $ /, '')

string.gsub

1

我推荐使用Nokogiri为您的分析需求。它得到了很好的支持,速度很快,非常灵活,并且是许多其他HTML/XML类型宝石的基础。它有一个Hpricot模式,但我不确定为什么有人会需要它,因为它的语法更加全面。

特别是,从HTML剥离标签,我建议您调查Loofah。它可以将标签列入白名单,并且可以进行多层清洁。