Удаление сущностей XML из строки в Ruby - PullRequest
0 голосов
/ 10 ноября 2009

Я пытаюсь проанализировать RSS-канал с помощью simple-rss lib.

К сожалению, я получил много мусора в узле:

 <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 Ответ

3 голосов
/ 10 ноября 2009

Это не мусор. Это просто санированная 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, которое я оставляю на ваше усмотрение (Подсказка - Google)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...