#javascript #rss #google-feed-api
#javascript #RSS-канал #google-feed-api
Вопрос:
var feedcontainer=document.getElementById("feeddiv")
var feedurl="http://example.com"
var feedlimit=5
var rssoutput="<b>Latest Slashdot News:</b><br /><ul>"
function rssfeedsetup(){
var feedpointer=new google.feeds.Feed(feedurl) //Google Feed API method
feedpointer.setNumEntries(feedlimit) //Google Feed API method
feedpointer.load(displayfeed) //Google Feed API method
}
function displayfeed(result){
if (!result.error){
var thefeeds=result.feed.entries
for (var i=0; i<thefeeds.length; i )
rssoutput ="<li><a href='" thefeeds[i].link "'>" thefeeds[i].title "</a></li>"
rssoutput ="</ul>"
feedcontainer.innerHTML=rssoutput
}
else
alert("Error fetching feeds!")
}
window.onload=function(){
rssfeedsetup()
}
Этот код я взял из руководства, но он захватывает только элементы, указанные в документации Google, которые являются базовыми, такими как ссылка и заголовок.
В моем rss-канале у меня есть тег, который находится в разделе «Возможно ли до этого добраться?».
Ответ №1:
Вот пример извлечения URL изображения из элемента enclosure элемента feed. Элемент enclosure не включен в стандартный формат json, поэтому для доступа к нему в resultFormat должно быть установлено значение MIXED_MODE. теперь записи результатов будут, в дополнение к json, включать XmlNode, из которого можно извлечь элемент enclosure, и URL-адрес:
var feed = new google.feeds.Feed(feedUrl);
feed.setResultFormat(google.feeds.Feed.MIXED_FORMAT);
feed.load( function(result) {
var entry = result.feed.entries[i];
var entryImageUrl = entry.xmlNode.getElementsByTagName("enclosure")[0].getAttribute("url");
});
Ответ №2:
Я понял это. Вы должны настроить канал для возврата XML с помощью feed.setResultFormat (google.feeds.Feed.XML_FORMAT);
затем, если вы хотите получить что-либо, что вы используете
item.getElementsByTagName(‘enclosure’)[0].getAttribute(«url»);