2

我正在尝试使用 JQuery 和 AJAX 遍历返回的 XML 文件。而且我最难弄清楚如何获取孩子的孩子并返回数据。我尝试的一切似乎都不起作用。到目前为止,我可以在数据集中获得正确数量的孩子,但是当我得到第一个孩子的孩子时,它会返回 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] 
4

1 回答 1

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)
     });
});
...
于 2012-08-15T01:13:31.967 回答