Google's feed loader appears to be ignoring attributes when converting to JSON. I'm using jQuery to grab a feed via AJAX. The actual RSS XML feed can be seen here, and the response from the AJAX call can be seen here.
I need to access the url
attribute of the <enclosure>
tags, but neither appear in the response.
For reference, the code I am using is:
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); }
});
}
I can't figure out how to get an XML response instead, as changing dataType : 'xml'
causes an HTTP error. JSON is preferable.
Any ideas?
The 'enclosure' tag is not included in the JSON response, so you have two options setting the output argument:
You need to set the output to '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);
Or use the mixed format: 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);
You´ll get the JSON plus a a new xmlString property with all the tags (including 'enclosure' attributes)
alert(d.responseData.xmlString);
In both cases you need to parse the XML string and navigate to the needed info
Hope this helps
来源:https://stackoverflow.com/questions/11139065/google-feed-loader-api-ignoring-xml-attributes