使用 jQuery 解析 xml 响应

IT技术 javascript jquery xml
2021-03-04 18:45:32

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

我有这个 xml :

<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
  <client_id>185</client_id>
</response>

我想获得“client_id”值。

4个回答

要在您的请求中将预期的响应数据类型修复为 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);
});
这安全吗?您通过 jQuery 解析响应内容,但不确定它是否正确。
2021-04-29 18:45:32
@Artem 如果响应Content-Type:标头类型为text/xml,则 jQuery 会将响应数据视为 XML。如果显示为application/json,jQuery 会将响应视为 JSON。这非常有效。我不确定你所说的“安全”是什么意思。
2021-05-12 18:45:32

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

clientID = $(myXML).find("client_id").text();
聪明的!XML 是一种标签语言.. 是的!
2021-05-14 18:45:32

使用这样的东西:

$.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) {

 $(data).find("marker").each(function() {


        var marker = $(this);


     alert(marker.attr("lat"));

 });

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

                     //    alert(markerh);

                }