web-dev-qa-db-ja.com

jQueryでXML応答を解析する

こんにちは、みんな、
私はjQueryを使用してxml応答を解析します。

私はこのxmlを持っています:

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

そして、「client_id」値を取得したいと思います。

22
Shyne

最初に、$。getまたは必要に応じてXMLをリクエストします。次に:

clientID = $(myXML).find("client_id").text();
37
Salty

リクエストで予期される応答データタイプを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);
});
39
Tomalak

このようなものを使用してください:

$.ajax({ type: 'GET', url: 'test.xml', dataType: 'xml', success: function(xml){
            $('response', xml).each(function() {alert($(this).find('client_id').text());});         
            }});
2
kgiannakakis

補足すると、$。getを使用します。

$.get($('file.xml').val(),{  } , doSomethingWithData); 

function doSomethingWithData(data){

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


        var marker = $(this);


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

 });

ここでtpicallが使用するrequest.responseXMLはこの場合のデータであり、動作させるには$(data)にカプセル化する必要があります(これにより、3時間ほど頭が壊れます; S)

                     //    alert(markerh);

                }
2
manuel