使用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."); 
      } 
     }); 
    }); 
}); 
+0

谢谢!是的,它的作品。 – EnnioMorricone 2015-04-06 18:18:45