如何用jQuery解析xml ajax回复?

时间:2009-08-12 01:53:58

标签: javascript jquery xml

在jQuery中使用ajax POST请求,我从服务器返回以下xml:

<?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中相应标签的数据?感谢。

3 个答案:

答案 0 :(得分:2)

确保您的服务器响应发送"Content-Type" "text/xml"标头。然后响应将是解析的xml文档。您的成功处理程序只需迭代生成的DOM:

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

答案 1 :(得分:1)

使用DOM方法:

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;
}

答案 2 :(得分:0)

我现在找不到语法,但您可以像使用html一样使用选择器查询对象,例如:

$.get('your/url', function(response) {
  $(response).contents("subject"); // just like it's HTML
});