使用jQuery解析xml响应

大家好,
我使用jQuery来解析我的xml响应。

我有这个xml:

  185  

我想获得“client_id”值。

首先,使用$ .get或者您想要的XML请求。 然后:

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

要在请求中将预期的响应数据类型修复为XML,请将dataType参数设置为“xml”。 如果不这样做,jQuery使用响应头进行猜测。

$.ajax()函数支持它作为options对象的一部分,以及$.get()$.post()

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

所以你可以这样做:

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

请注意,从jQuery 1.5开始,您可以使用上述Ajax请求的更好版本:

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

使用这样的东西:

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

只是为了补充,我使用$ .get:

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

function doSomethingWithData(data){

  $(data).find("marker").each(function() { var marker = $(this); alert(marker.attr("lat")); }); 

这里tpicall使用request.responseXML是这种情况下的数据,你必须将它封装在$(数据)中以便工作(这让我打破了大约3个小时; S)

  // alert(markerh); }