簡體   English   中英

如何從GOOGLE AJAX Feed API獲取新聞項目的描述

[英]How to get the description of a news Item from GOOGLE AJAX Feed API

我正在使用腳本來使用Google AJAX Feed API加載來自不同來源的新聞。 如何獲得條目的描述? 以下是一個hello world程序:

<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 Feed。 我想要“描述”部分。 我怎么能得到它

您可以獲取描述,但不能使用JSON格式和entry對象來執行此操作。 如果您仔細閱讀https://developers.google.com/feed/v1/devguide上的Feed參數,您會看到該description不是它在入門級別返回的字段 - 僅在Feed級別。

為此,您需要以XML格式請求Feed,然后加載各個節點,包括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;
   }

可以使用content變量檢索HTML描述。 因此你應該有:div.appendChild(document.createTextNode(entry.content));

請注意,這將檢索HTML數據格式。

經過大量挖掘,我發現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;

更改entry.title in:

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

進入。描述。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM