在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中相应标签的数据?感谢。
答案 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
});