2012-02-26 94 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; 
相關問題