Google Feed API и захват тегов и атрибутов - PullRequest
2 голосов
/ 12 мая 2011
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 есть тег, который находится в разделе "Возможно ли это сделать?"

Ответы [ 2 ]

5 голосов
/ 01 марта 2012

Вот пример получения 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");
});
1 голос
/ 12 мая 2011

Я понял это.Вы должны установить ленту для возврата XML с помощью feed.setResultFormat (google.feeds.Feed.XML_FORMAT);

, затем, если вы хотите получить что-либо, вы используете

item.getElementsByTagName ('корпус ') [0] .getAttribute ( "URL");

...