简体   繁体   中英

parse xml response with jQuery

HI all,
I use jQuery to parse my xml responses.

I have this xml :

<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
  <client_id>185</client_id>
</response>

And i want to get "client_id" value.

To fix the expected response data type to XML right in your request, set the dataType parameter to "xml". If you don't, jQuery uses the response headers to make a guess.

It is supported on the $.ajax() function as part of the options object, as well as on $.get() and $.post() :

jQuery.ajax( options )
jQuery.get( url, data, callback, type )
jQuery.post( url, data, callback, type )

So you could do this:

$.ajax({
  type: 'GET',
  url: "foo.aspx",
  data: {
    key: "value"
  },
  dataType: "xml",
  success: function (xml){
    var clientid = $(xml).find('client_id').first().text();
    alert(clientid);
  }   
});

Note that as of jQuery 1.5 you can use a nicer version of the above Ajax request:

$.get("foo.aspx", {
  key: "value"
})
.done(function (xml){
  var clientid = $(xml).find('client_id').first().text();
  alert(clientid);
});

First, make a request for the XML with $.get or however you want. Then:

clientID = $(myXML).find("client_id").text();

Use something like this:

$.ajax({ type: 'GET', url: 'test.xml', dataType: 'xml', success: function(xml){
            $('response', xml).each(function() {alert($(this).find('client_id').text());});         
            }});

just to complement, i you use $.get:

$.get($('file.xml').val(),{  } , doSomethingWithData); 

function doSomethingWithData(data) {

 $(data).find("marker").each(function() {


        var marker = $(this);


     alert(marker.attr("lat"));

 });

here tpicall used request.responseXML is the data in this case, and you have to encapsulate it in $(data) in order to work (this make me break the head about 3 hours ;S)

                     //    alert(markerh);

                }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM