2

转换为 JSON 时,Google 的提要加载器似乎忽略了属性。我正在使用 jQuery 通过 AJAX 获取提要。可以在此处查看实际的 RSS XML 提要,并且可以在此处查看来自AJAX 调用的响应。

我需要访问标签的url属性<enclosure>,但都没有出现在响应中。

作为参考,我使用的代码是:

function getFeed(url) {
    url = 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' 
            + encodeURIComponent(url);
    $.ajax({
        type: 'GET',
        url: url,
        dataType: 'jsonp',
        cache: false,
        success: function(d) { alert(JSON.stringify(d); },
        error: function(s,x) { alert(x); }
    }); 
}

我不知道如何获取 XML 响应,因为更改dataType : 'xml'会导致 HTTP 错误。JSON 更可取。

有任何想法吗?

4

1 回答 1

7

JSON 响应中不包含“enclosure”标签,因此您有两个选项可以设置输出参数:

您需要将输出设置为“XML”:https ://developers.google.com/feed/v1/jsondevguide#json_args

url = 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&output=xml&num=10&callback=?&q='+ encodeURIComponent(url); 

或者使用混合格式:https ://developers.google.com/feed/v1/devguide#resultMixed

url = 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&output=json_xml&num=10&callback=?&q='+ encodeURIComponent(url); 

您将获得 JSON 以及带有所有标签的新 xmlString 属性(包括“enclosure”属性)

alert(d.responseData.xmlString);

在这两种情况下,您都需要解析 XML 字符串并导航到所需的信息

希望这可以帮助

于 2012-06-28T12:45:27.513 回答