全部,
我使用jQuery来解析我的xml响应。
我有这个xml:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<client_id>185</client_id>
</response>
我希望获得“client_id”值。
答案 0 :(得分:39)
要在请求中将预期的响应数据类型修复为XML,请将dataType
参数设置为“xml”。如果不这样做,jQuery会使用响应头进行猜测。
$.ajax()
功能作为options
对象的一部分以及$.get()
和$.post()
支持{/ 1>}。
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);
});
答案 1 :(得分:37)
首先,使用$ .get或者您想要的XML请求。 然后:
clientID = $(myXML).find("client_id").text();
答案 2 :(得分:2)
使用类似的东西:
$.ajax({ type: 'GET', url: 'test.xml', dataType: 'xml', success: function(xml){
$('response', xml).each(function() {alert($(this).find('client_id').text());});
}});
答案 3 :(得分:2)
只是为了补充,我使用$ .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);
}