2012-02-26 69 views
3

我正在使用脚本来使用Google AJAX Feed API从不同来源加载新闻。我怎样才能得到一个条目的描述?下面是一个Hello World程序:如何从GOOGLE AJAX Feed API获取新闻项目的描述

<html> 
    <head> 
    <script type="text/javascript" src="https://www.google.com/jsapi"></script> 
    <script type="text/javascript"> 

    google.load("feeds", "1"); 

    function initialize() { 
     var feed = new google.feeds.Feed("http://news.google.com/?output=rss"); 
     feed.load(function(result) { 
     if (!result.error) { 
      var container = document.getElementById("feed"); 
      for (var i = 0; i < result.feed.entries.length; i++) { 
      var entry = result.feed.entries[i]; 
      var div = document.createElement("div"); 
      div.appendChild(document.createTextNode(entry.title)); 
      container.appendChild(div); 
      } 
     } 
     }); 
    } 
    google.setOnLoadCallback(initialize); 

    </script> 
    </head> 
    <body> 
    <div id="feed"></div> 
    </body> 
</html> 

我怎样才能使用entry对象的描述???我正在使用google网址 - http://news.google.com/?output=rss获取XML格式的RSS订阅源。我想要“描述”部分。我怎样才能像

回答

3

您可以获得说明,但不能使用JSON格式和entry对象来执行此操作。如果您仔细阅读https://developers.google.com/feed/v1/devguide的供稿参数,您会发现description不是它在入门级返回的字段 - 只是在供稿级别。

要做到这一点,您需要请求XML格式的订阅源,然后加载单个节点,包括description。这是我用来做的相关片段 - 根据需要更改格式等。

function initialize() { 
    var feed = new google.feeds.Feed("http://myblog.com/blog/feed/"); 
    feed.setResultFormat(google.feeds.Feed.XML_FORMAT); 
    feed.load(function(result) { 
    if (!result.error) { 
    var items = result.xmlDocument.getElementsByTagName('item'); 
    item = items[0]; 

    //build each element 
    var title = document.createElement("h4"); 
    title.innerHTML = item.getElementsByTagName('title')[0].firstChild.nodeValue; 

    var content = document.createElement("p"); 
    content.innerHTML = item.getElementsByTagName('description')[0].firstChild.nodeValue; 

    href = item.getElementsByTagName('link')[0].firstChild.nodeValue; 
    } 
-1

变化entry.title在:

div.appendChild(document.createTextNode(entry.title)); 

到entry.description。

+0

描述变量未定义。 – Kursion 2012-02-26 12:48:35

2

可以使用内容变量检索HTML描述。 因此,你应该有: div.appendChild(document.createTextNode(entry.content));

请注意,这将检索HTML数据格式。

1

经过大量的挖掘,我发现Google API使用“contentSnippet”而不是描述。不需要XML格式。

function initialize() { 
    var feed = new google.feeds.Feed("http://myblog.com/blog/feed/"); 
    feed.setNumEntries(10); 
    feed.load(function(result) { 
     if (!result.error) { 

      $(document).ready(function(){ 
       $('#feed-pull').append('<ul></ul>'); 
       for (var i = 0; i < result.feed.entries.length; i++) { 
        var entry = result.feed.entries[i];      
        var desc = entry.contentSnippet; 
相关问题