【发布时间】:2009-02-04 11:44:03
【问题描述】:
大家好,
我使用 jQuery 来解析我的 xml 响应。
我有这个 xml:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<client_id>185</client_id>
</response>
我想获得“client_id”值。
【问题讨论】:
标签: javascript jquery xml
大家好,
我使用 jQuery 来解析我的 xml 响应。
我有这个 xml:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<client_id>185</client_id>
</response>
我想获得“client_id”值。
【问题讨论】:
标签: javascript jquery xml
要在您的请求中将预期的响应数据类型固定为 XML,请将 dataType 参数设置为“xml”。如果你不这样做,jQuery 会使用响应头进行猜测。
作为options 对象的一部分的$.ajax() 函数以及$.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);
});
【讨论】:
Content-Type: 标头类型为 text/xml,则 jQuery 会将响应数据视为 XML。如果它显示application/json,jQuery 会将响应视为 JSON。这很好用。我不确定您所说的“安全”是什么意思。
首先,使用 $.get 或您想要的任何方式请求 XML。 那么:
clientID = $(myXML).find("client_id").text();
【讨论】:
使用这样的东西:
$.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);
函数doSomethingWithData(数据) {
$(data).find("marker").each(function() {
var marker = $(this);
alert(marker.attr("lat"));
});
这里 tpicall 使用的 request.responseXML 是本例中的数据,你必须将它封装在 $(data) 中才能工作(这让我头疼了大约 3 小时;S)
// alert(markerh);
}
【讨论】: