我正在尝试使用JQuery和AJAX遍历返回的XML文件。而且我正在努力想出如何让孩子的孩子和返回数据。我尝试的一切似乎都不起作用。到目前为止,我可以在DATASET中获得正确数量的孩子,但是当我得到第一个孩子的孩子时,它会返回7个孩子,当应该有3个孩子。有人可以解决这个问题吗?
这是数据
<DATASET>
<ITEM>
<COLUMN1>A</COLUMN1>
<COLUMN2>B</COLUMN2>
<COLUMN3>C</COLUMN3>
</ITEM>
<ITEM>
<COLUMN1>D</COLUMN1>
<COLUMN2>E</COLUMN2>
<COLUMN3>F</COLUMN3>
</ITEM>
</DATASET>
这是电话
function callAJAX(){
var request = $.ajax({
url: "testAjaxData.xml",
type: "POST",
data: {id : "paramValue"},
dataType: "xml"
});
request.done(function(xml) {
var myDoc = "";
var tree = xml.documentElement.childNodes;
var $kids = $(xml).find("DATASET").children()
alert($kids.size());
$kids.each(function(){
var tagName=this.tagName;
alert(tagName + " size: " + childNodes.length);
for (var i = 0; i < this.childNodes.length; i++) {
//alert(this.childNodes[i].value)
}
});
});
request.fail(function(jqXHR, textStatus) {
alert( "Request failed: " + textStatus );
});
}
最终我想打印出来像:
Row1: column1=[A] column2=[B] column3=[C]
Row2: column1=[D] column2=[E] column3=[F]
答案 0 :(得分:1)
文本节点包含在childNodes
属性中,包括空格,因此子节点之间的空格也很重要。
由于你正在使用jQuery,你可以这样做:
...
$kids.each(function(){
var tagName=this.tagName;
var cols = $(this).children();
alert(tagName + " size: " + cols.length);
cols.each(function() {
//alert(this.value)
});
});
...