И я получаю массив элементов с полями title / link / pubdate. Помимо поля "ссылка", я не получаю никакой информации, которая могла бы сказать мне, откуда поступил элемент.
Чтобы получить информацию о происхождении каждого элемента, добавьте поле source
:
SELECT title, link, pubDate, source FROM rss
...
Результат будет содержать элемент source
в каждой записи, который имеет атрибут url
, который содержит URL, из которого был получен элемент:
<results>
<item>
<title>Git Immersion - Brought to you by EdgeCase</title>
<pubDate>Wed, 21 Dec 2011 22:15:44 +0000</pubDate>
<link>http://gitimmersion.com/</link>
<source url="http://feeds.delicious.com/v2/rss/geek">geek's links</source>
</item>
Демонстрация YQL .
Вы можете искать все поля, используя *
, вот как я узнал о поле source
:
SELECT * FROM rss
WHERE url IN ('http://feeds.delicious.com/v2/rss/geek', 'http://feeds.delicious.com/v2/rss/foo')
Демонстрация запросов YQL
Я думаю, что это должно ответить на ваш вопрос. Чтобы уменьшить объем передаваемых данных, вы также можете выбрать только атрибут url источника, например:
SELECT title, link, pubDate, source.url FROM rss
...
См. Также Использование YQL для загрузки и преобразования RSS-каналов действительно, очень быстро и Как использовать YQL для объединения 2 RSS-каналов, отсортированных по pubDate? .
Ниже приведен более старый комментарий к синтаксису YQL:
Обратите внимание, что implode("','", array_values($urls))
оставит ваш YQL с неверным синтаксисом:
... IN (urlA ',' urlB ',' urlC)
Вы видите пропущенные одинарные кавычки в начале и в конце? Добавьте их:
"'".implode("','", $urls)."'"
и у тебя все будет хорошо. По крайней мере, вы должны иметь на одну ошибку меньше.