RSS full-text

12
neov
На сайте с 15.02.2005
Offline
95
1488

Подскажите кто сталкивался, как из RSS вытащить яндексный full-text:

<yandex:full-text>

a.fatman
На сайте с 15.01.2006
Offline
127
#1

Что значит "вытащить яндексный full-text"?

supportwln
На сайте с 07.06.2005
Offline
129
#2

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

<yandex:full-text><?php if ( strlen( $post->post_content ) > 0 ) : ?><![CDATA[<?php the_content_rss('', 0, '') ?>]]><?php else : ?><![CDATA[<?php the_excerpt_rss() ?>]]><?php endif; ?></yandex:full-text>

Автогараж главного механика. (http://glavmech.livejournal.com/), теперь и на собственном домене. (http://bimmerlife.ru/)
neov
На сайте с 15.02.2005
Offline
95
#3

Это вы наоборот в rss его загоняете, а как его потом прочитать на пхп-парсере. Приведу пример чтения description:


if ($tag == $rss.$rssChannel.'^ITEM^DESCRIPTION') $this->items[$this->cnt]['description'] .= $data;
supportwln
На сайте с 07.06.2005
Offline
129
#4

neov, угу...я не понял изначально суть вопроса...прошу прощения.

не знаю...

a.fatman
На сайте с 15.01.2006
Offline
127
#5

В php-парсере, наверное, можно и yandex:full-text поставить вместо description.

Можно заменять <yandex:full-text> на <description> с помощью регулярных выражений, и потом парсить, как нормальный RSS.

neov
На сайте с 15.02.2005
Offline
95
#6

То есть получается такая строка:

...'^ITEM^YANDEX:FULL-TEXT'...

😕

a.fatman
На сайте с 15.01.2006
Offline
127
#7

Я не знаю, как устроен ваш парсер, но, думаю, ничего не мешает попробовать. :)

М
На сайте с 08.02.2006
Offline
59
#8
Можно заменять <yandex:full-text> на <description> с помощью регулярных выражений, и потом парсить, как нормальный RSS.

При таком раскладе его можно парсить и как обычный текст.

То ТС

У вас парсер с использованием каких функций написан? Если на DOM, то копайте в сторону DOMDocument->getElementsByTagNameNS(), если на xml_parser, то xml_parser_create_ns(). Если используете готовую библиотеку, то ковыряйте ее насчет поддержки namespaces

neov
На сайте с 15.02.2005
Offline
95
#9
Магнат:
То ТС
У вас парсер с использованием каких функций написан? Если на DOM, то копайте в сторону DOMDocument->getElementsByTagNameNS(), если на xml_parser, то xml_parser_create_ns(). Если используете готовую библиотеку, то ковыряйте ее насчет поддержки namespaces

Спасибо за подсказку)) У меня используется xml_parser. Буду искать описание указанной функции🚬

neov
На сайте с 15.02.2005
Offline
95
#10

Магнат, +1

Палю тему:

вместо xml_parser_create() используем xml_parser_create_ns(). В этом случае разборщик будет подставлять вместо ns-имени адрес xmlns, заданный в заголовке:

<rss version="2.0" xmlns:yandex="http://news.yandex.ru">

Таким образом в тегах <yandex:full-text> имя yandex будет заменено на адрес http://news.yandex.ru.

Теперь остается прописать в коде:

...'^ITEM^HTTP://NEWS.YANDEX.RU:FULL-TEXT'...

И мы получим все содержимое этого тега)))

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий