2012-09-21 63 views
0

我正在对返回一些xml的jsp页面进行ajax调用。一切似乎都很顺利,当我使用警报显示返回的数据时,一切看起来都很好。但是,当我尝试解析我的jQuery中的xml时,我无法做到这一点。返回的xml无法解析

返回的XML看起来是这样的:

<?xml version="1.0" encoding="ISO-8859-1"?> 
    <locations> 
    <location> 
     <branch>Branch</branch> 
     <branchid>BranchID</branchid> 
     <phone>Phone</phone> 
     <address>Address</address> 
     <phone2>Phone2</phone2> 
     </location> 
    </locations> 

我的AJAX看起来是这样的:

$.ajax({ 
     type: "POST", 
     url: "test.jsp", 
     data: {zc : $('#zc').val()}, 
     async: false,    
     success: function(message){ 
      message = message.trim();     
      $(message).find('location').each(function(){ 
       var branch = $(this).find('branch').text(); 
       alert(branch); 
      }) 

     } 
    }) 

回答

0

使用jQuery.parseXML

var xml = "<rss version='2.0'><channel><title>RSS Title</title></channel></rss>", 
    xmlDoc = $.parseXML(xml), 
    $xml = $(xmlDoc), 
    $title = $xml.find("title"); 

参考:jQuery parseXML

0

请尝试下面的代码:

var message = "<?xml version='1.0' encoding='ISO-8859-1'?>" 
    +"<locations>" 
    +"<location>" 
     +"<branch>Branch</branch>" 
     +"<branchid>BranchID</branchid>" 
     +"<phone>Phone</phone>" 
     +"<address>Address</address>" 
     +"<phone2>Phone2</phone2>" 
     +"</location>" 
    +"</locations>"; 

$('location', message).each(function(xml){ 
    console.log('branch:' +$(this).find('phone2').text()); 
    console.log('branchid:' +$(this).find('branchid').text()); 
    console.log('phone:' +$(this).find('phone').text()); 
    console.log('address:' +$(this).find('address').text()); 
})