2

返されたXMLファイルをJQueryとAJAXでトラバースしようとしています。そして、私は子供たちの子供たちを取得し、データを返す方法を理解するのに最も苦労しています。私が試したすべてがうまくいかないようです。これまでのところ、DATASETで正しい数の子を取得できますが、最初の子の子を取得すると、3つあるはずの7つの子が返されます。誰かがこれを解決できますか?

これがデータです

<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 に答える