api канала Google и получение тегов и атрибутов

#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»);