2015-04-06 53 views
0

我想解析從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);   
      } 
    }); 
}); 

});

回答

0

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