0

所以这是我访问 RSS 提要的测试代码。另外,这是我要解析的 RSS 提要。这不是项目的最终设计,只是试图拼凑起来。

当我使用 c.title,c.link 部分而不是c.description 或 c.pubDate 部分时,它可以工作。它只是说它是未定义的。

    <!DOCTYPE html>
    <html>
    <head>
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <title>not finished yet</title>

      <script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'></script>


          <script type='text/javascript' >/*
     /*
      * jGFeed 1.0 - Google Feed API abstraction plugin for jQuery
      *
      * Copyright (c) 2009 jQuery HowTo
      *
      * Licensed under the GPL license:
      *   http://www.gnu.org/licenses/gpl.html
      *
      * URL:
      *   http://jquery-howto.blogspot.com
      *
      * Author URL:
      *   http://me.boo.uz
      *
      */
     (function ($) {
         $.extend({
             jGFeed: function (url, fnk, num, key) {
                 if (url == null) {
                     return false;
                 }
                 var gurl = "http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&callback=?&q=" + url;
                 if (num != null) {
                     gurl += "&num=" + num;
                 }
                 if (key != null) {
                     gurl += "&key=" + key;
                 }
                 $.getJSON(gurl, function (data) {
                     if (typeof fnk == "function") {
                         fnk.call(this, data.responseData.feed);
                     } else {
                         return false;
                     }
                 });
             }
         });
     })(jQuery);</script>




<script type='text/javascript'>

    $(window).load(function () {
        $.jGFeed('http://www.scarletknights.com/rss/rss.asp?sportid=1',
            function (feeds) {
                if (!feeds) {
                    alert('Trouble getting RSS feed :(');
                    return false;
                }
                for (var i = 0; i < feeds.entries.length; i++) {
                    var entry = feeds.entries[i];
                    console.log(entry);
                    // Entry title
                    $('#results').append('<h1>' + entry.title + '</h1>' + '<br/>');
                }
            }, 10);

    });
</script>

    </head>
    <body>
      <div id="results"></div>


    </body>


    </html>
4

2 回答 2

1

虽然您使用的提要具有名为titlelinkdescription和的字段pubDate,但您正在通过 Google 的 API 传递该数据。您可以在此处查看完整文档,但您需要的字段称为titlelinkcontentSnippetpublishedDate

这是您的代码的一个工作示例:http: //jsfiddle.net/LacE5/3/

于 2013-10-24T21:39:01.277 回答
1

您对 Feed 本身和 Google 的 Feed API 为您提供的(已处理的)返回 JSON 感到困惑。请记住,Google 的 Feed API 不会返回与 Feed 格式相同的格式。

查看您请求的 JSON 返回的文档entries,您将看到数组中项目的可用属性;它们包括 atitle和 a link,但不包括 adescription或 a pubDatecontent或者contentSnippet可能是您最接近的地方descriptionpublishedDatepubDate来自提要。

谷歌这样做是因为他们的 Feed API 可以解析的不仅仅是 RSS;它还解析 Atom,并从两种类型的提要中以一致的格式返回一个对象,让您的生活更轻松。

于 2013-10-24T21:30:55.123 回答