从Ruby中的字符串中删除XML实体

时间:2009-11-10 04:37:15

标签: xml ruby regex string rss

我尝试使用simple-rss lib解析RSS chaanal。

不幸的是我在节点中收到了很多垃圾:

 <description>&lt;p&gt;
some decryption

&lt;/p&gt;
 &lt;a href="http://url.com/trac/xxx/wiki/foo?action=diff&amp;amp;version=28"&gt;(diff)&lt;/a&gt;</description>

我需要检索文本(“某些描述”)和可选的网址。

最好的方法是什么? Regexp(如果这是答案,你可以举个例子吗?)?

1 个答案:

答案 0 :(得分:3)

这不是垃圾。它只是HTML清理字符串。我假设通过网址,您的意思是使用html标记(<a></a>)。以下代码应该可以工作。

require 'cgi'
description = "&lt;/p&gt; &lt;a href=\"http://url.com/trac/xxx/wiki/foo?action=diff&amp;amp;version=28\"&gt;(diff)&lt;/a&gt;"
CGI.unescapeHTML(description) # => </p> <a href="http://url.com/trac/xxx/wiki/foo?action=diff&amp;version=28">(diff)</a>

如果您不想使用html标签,可以通过多种方式获取网址。一个简单的url正则表达式应该可以工作,我留给你弄清楚。(提示 - 谷歌)