最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to get the description of a news Item from GOOGLE AJAX Feed API - Stack Overflow

programmeradmin0浏览0评论

I am using a script to load news from different sources, using Google AJAX feed API. How can I get the description of an entry? Below is an hello world program:

<html>
  <head>
    <script type="text/javascript" src=""></script>
    <script type="text/javascript">

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

    function initialize() {
      var feed = new google.feeds.Feed("/?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>

How can I get the description using the entry object??? I am using the google URL - /?output=rss for RSS feeds in XML format. I want the "Description" part. How can I get that

I am using a script to load news from different sources, using Google AJAX feed API. How can I get the description of an entry? Below is an hello world program:

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

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

    function initialize() {
      var feed = new google.feeds.Feed("http://news.google./?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>

How can I get the description using the entry object??? I am using the google URL - http://news.google./?output=rss for RSS feeds in XML format. I want the "Description" part. How can I get that

Share Improve this question asked Feb 26, 2012 at 12:32 footyfooty 5,93113 gold badges53 silver badges97 bronze badges
Add a ment  | 

4 Answers 4

Reset to default 3

You can get the description, but you can't use the JSON format and the entry object to do it. If you read the feed parameters at https://developers.google./feed/v1/devguide carefully, you'll see that description is not a field it returns at the entry level - just at the feed level.

To do it, you need to request the feed in XML format, and then load the individual nodes, including description. Here's the relevant snippet I've used to do it - change the formatting etc. as you need.

function initialize() {
   var feed = new google.feeds.Feed("http://myblog./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;
   }

The HTML description can be retrieved by using the content variable. Thus you should have: div.appendChild(document.createTextNode(entry.content));

Be aware that this will retrieve HTML data format.

After much digging, I found that the Google API uses "contentSnippet" instead of description. No XML formatting needed.

function initialize() {
    var feed = new google.feeds.Feed("http://myblog./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;

Change entry.title in:

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

to entry.description.

发布评论

评论列表(0)

  1. 暂无评论