使用jQuery解析xml响应
问题描述:
HI all,
我使用jQuery来解析我的xml响应。使用jQuery解析xml响应
我有这样的XML:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<client_id>185</client_id>
</response>
,我希望得到 “的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);
});
+0
安全吗?你用jQuery解析响应内容,你不确定它是否正确。 – 2012-08-21 12:26:47
答
使用这样的事情:
$.ajax({ type: 'GET', url: 'test.xml', dataType: 'xml', success: function(xml){
$('response', xml).each(function() {alert($(this).find('client_id').text());});
}});
答
只是补充,我使用$不用彷徨:
$.get($('file.xml').val(),{ } , doSomethingWithData);
功能doSomethingWithData(数据){
$(data).find("marker").each(function() {
var marker = $(this);
alert(marker.attr("lat"));
});
这里tpicall在这种情况下使用request.responseXML是数据,并且您必须将其封装在$(data)中才能工作(这让我头脑破了约3小时; S)
// alert(markerh);
}
聪明! XML是一种标签语言。 – 2016-03-31 08:59:10