我需要解析ajax中web服务返回的xml响应,这是我的代码,'response'是Web服务返回的响应,我如何创建一个xml对象并解析它?
$.ajax({
type: 'POST',
url: 'web service link',
dataType: 'xml:lang',
success: function (response) {
// how to parse the response here
},
error: function (error) {
console.log(error);
}
});
这是我的XML代码:
<ArrayOfMobileConfiguration xmlns:xsd="w3.org/2001/XMLSchema"; xmlns:xsi="w3.org/2001/XMLSchema-instance"; xmlns="tempuri.org/">;
<MobileConfiguration>
<Id>1</Id>
<Key>STMaxDownloadSize</Key>
<Value>132000</Value>
</MobileConfiguration>
<MobileConfiguration>
<Id>2</Id>
<Key>ZoomingThresholdValue</Key>
<Value>14</Value>
</MobileConfiguration>
</ArrayOfMobileConfiguration>
答案 0 :(得分:4)
jQuery能够以与选择标准HTML相同的方式从XML响应中检索值。试试这个:
$.ajax({
type: 'POST',
url: 'web service link',
dataType: 'xml',
success: function (response) {
$('MobileConfiguration', response).each(function() {
var id = $(this).find('Id').text();
var key = $(this).find('Key').text();
var value = $(this).find('Value').text();
console.log(id, key, value);
});
},
error: function (error) {
console.log(error);
}
});
答案 1 :(得分:0)
此:
dataType: 'xml:lang',
应该只是:
dataType: 'xml',
然后,jQuery将忽略响应的内容类型并将其解析为XML,然后在response
函数中填充您已命名为success
的变量。
答案 2 :(得分:0)
请尝试以下代码
$.ajax({
type: 'POST',
url: 'web service link',
dataType: 'xml',
success: function (response) {
$(response).find('MobileConfiguration').each(function(){
var Id = $(this).find('Id').text();
var Key = $(this).find('Key').text();
var Value = $(this).find('Value').text();
// Use Id, Key, Value according to your requirement.
});
},
error: function (error) {
console.log(error);
}
});