代码之家  ›  专栏  ›  技术社区  ›  Maciek Sawicki

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

  •  0
  • Maciek Sawicki  · 技术社区  · 15 年前

    我尝试用简单的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>
    

    我需要检索文本(“一些描述”)和可选的URL。

    最好的方法是什么?regexp(如果这是答案,请给我举个例子好吗?)?

    1 回复  |  直到 15 年前
        1
  •  3
  •   Chirantan    15 年前

    那不是垃圾。它只是经过HTML清理的字符串。我假设URL,你的意思是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。URL的一个简单的regex应该可以工作,我把它留给您去弄清楚。(提示-google)