Yahoo трубы: заменить элемент в RSS-канал - PullRequest
0 голосов
/ 25 января 2012

У меня проблема с каналами Yahoo.

Я пытаюсь получить URL, который находится в конце item.title (RSS-канал). Я хочу использовать этот URL в item..link

Я использую регулярное выражение для получения URL (((f | ht) {1} tp: //) [-a-zA-Z0-9 @:% _ +. ~ #? &// =] +) и это прекрасно работает.

Но как мне использовать это, чтобы использовать его для item.link?

Теперь это выглядит так:

..
<item>
<title>
Hello this is a test http://www.google.com
</title>
<link>
http://otherurl
</link>
<description>
Hello this is a test http://www.google.com
</description>
<guid isPermaLink="false">
http://otherurl
</guid>
<pubDate>Tue, 24 Jan 2012 18:27:18 +0000</pubDate>
</item>
..

И я хочу сделать так:

..
<item>
<title>
Hello this is a test http://www.google.com
</title>
<link>
http://www.google.com
</link>
<description>
Hello this is a test http://www.google.com
</description>
<guid isPermaLink="false">
http://otherurl
</guid>
<pubDate>Tue, 24 Jan 2012 18:27:18 +0000</pubDate>
</item>
..

Ответы [ 2 ]

0 голосов
/ 26 января 2012

Я нашел это! Должно быть

^.*(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+).*$

он будет выбирать все, пока не найдет URL!

0 голосов
/ 25 января 2012

Используйте модуль Regex , чтобы скопировать item.title в item.link и затем изменить item.link:

1) В item.link заменить .* на ${title}

2) В item.link заменить ".* " (без кавычек, обратите внимание на пробел в конце) на "" (пусто)

...