Javascript 用jQuery解析xml响应

Javascript 用jQuery解析xml响应,javascript,jquery,xml,Javascript,Jquery,Xml,大家好, 我使用jQuery解析xml响应 我有以下xml: <?xml version="1.0" encoding="UTF-8"?> <response status="ok"> <client_id>185</client_id> </response> 185 我想获取“client_id”值。首先,使用$.get或您想要的方式请求XML。 然后: 要将请求中的预期响应数据类型修正为XML,请将dataType参数设

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

我有以下xml:

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

185

我想获取“client_id”值。

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


要将请求中的预期响应数据类型修正为XML,请将
dataType
参数设置为“XML”。如果没有,jQuery将使用响应头进行猜测

作为
选项
对象的一部分,它在
$.ajax()
函数上受支持,在
$.get()
$.post()上受支持:

所以你可以这样做:

$.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);
});

使用类似以下内容:

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

在这里,tpicall used request.responseXML是本例中的数据,您必须将其封装在$(数据)中才能工作(这使我在3小时左右的时间内感到头晕目眩)


这是否安全?您通过jQuery解析响应内容,但不确定其是否正确。@Artem如果响应
内容类型:
标题类型为
text/xml
,则jQuery将响应数据视为xml。如果它说
application/json
,jQuery将响应视为json。这非常有效。我很抱歉不知道“安全”是什么意思。Smart!XML是一种标记语言..是的!
$.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); 
 $(data).find("marker").each(function() {


        var marker = $(this);


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

 });
                     //    alert(markerh);

                }