2009-08-12 15 views
2

は、私は、サーバーから戻って次のXMLを取得:xml ajax返信をjQueryで解析するには? jQueryのでAjaxのPOSTリクエストを使用して

<?xml version="1.0"?> 
<data> 

    <subject> 
    <val1>...</val1> 
    <val2>...</val2> 
    <val3>...</val3> 
    </subject> 

    <subject> 
    <val1>...</val1> 
    <val2>...</val2> 
    <val3>...</val3> 
    </subject> 

    ... 

</data> 

XMLは<subject>タグの任意の番号を持つことになります。各反復で対応するタグのval1..val3のデータを取得して、それぞれのsubjectタグをループするにはどうすればよいですか?ありがとう。 DOMメソッドの使用

答えて

2

は、サーバーの応答が"text/xml""Content-Type"ヘッダを送信していることを確認します。応答は解析されたxmlドキュメントになります。 、私は今の構文を見つけることはできませんが、あなたはHTMLを行うだけのようなセレクタを使用してオブジェクトを照会することができ

$.post(url, postData, function(xmlDoc) { 
    $('subject', xmlDoc).each(function() { 
     var val1 = $('val1', this).text(); 
     var val2 = $('val2', this).text(); 
     var val3 = $('val3', this).text(); 
    }) 
}); 
+0

私はこれを試して、データベースからのvarcharデータを持っていたval#のために働いていました。しかし、$( 'val#'、this).text()をポップアップしようとすると、テキスト型データ(mySql)を持つvalタグが空白になりました。なぜこのようなアイデアですか? – oym

+0

@ es111:私はXMLを見なければならないでしょう。アップデートを投稿してください。 –

+0

nevermind、私は実際に使用していたval#タグの1つのために愚かでありました私はそれが値を拾いません理由だと思っています。 – oym

1

var subjects = xml.getElementsByTagName("subject"); 
for(i in subjects){ 
    alert(subjects[i].getElementByTagName("val1").textContent; 
    alert(subjects[i].getElementByTagName("val2").textContent; 
    alert(subjects[i].getElementByTagName("val3").textContent; 
} 
0

のようなもの:

$.get('your/url', function(response) { 
    $(response).contents("subject"); // just like it's HTML 
}); 
をあなたの成功ハンドラは、その後に結果のDOMを反復あり
関連する問題