使用jQuery解析XML AJAX调用
问题描述:
我想解析从jQuery获取的GET请求中的XML响应。 这个问题似乎是我感兴趣的XML元素的类型。使用jQuery解析XML AJAX调用
请让我知道如何解析这个。
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:app="http://purl.org/atom/app#"
xmlns:yt="http://gdata.youtube.com/schemas/2007" xmlns:gd="http://schemas.google.com/g/2005"
xmlns:media="http://search.yahoo.com/mrss/">
<id>http://gdata.youtube.com/feeds/api/videos/VVoO9cdk5Eo</id>
<published>2015-04-03T18:30:00.000Z</published>
<updated>2015-04-06T02:11:57.000Z</updated>
<gd:rating average="4.9371624" max="5" min="1" numRaters="2037"
rel="http://schemas.google.com/g/2005#overall" />
<yt:statistics favoriteCount="0" viewCount="148847" />
我的代码,我可以成功地检索类似 '发布'。但我需要解析'gd:rating'
$(document).ready(function(){
$("#mybutton").click(function(){
$.ajax({
type: "GET",
dataType: "xml",
url: "https://gdata.youtube.com/feeds/api/videos/VVoO9cdk5Eo?v=1",
success: function(response){
console.log("Success");
var rating = $(response).find('published').first().text();
alert("#" + rating);
}
});
});
});
答
jQuery的XML解析能力并不是很好,尤其是当涉及到命名空间时。
您可以使用标准DOM方法轻松解决此问题。
$(function(){
$("#mybutton").click(function() {
var videoInfo = "https://gdata.youtube.com/feeds/api/videos/VVoO9cdk5Eo?v=1";
$.get(videoInfo).done(function (xml) {
var rating = xml.getElementsByTagName("rating")[0];
if (rating) {
alert("Average rating: " + rating.getAttribute("average"));
} else {
alert("Sorry, no rating.");
}
});
});
});
谢谢!是的,它的作品。 – EnnioMorricone 2015-04-06 18:18:45