2

この XML を PHP ページから出力し、その結果を jQuery で解析しています。

<?xml version="1.0" encoding="UTF-8"?> <response> <row> <webpage_tag_id>2096</webpage_tag_id> <stackPageID>Test</stackPageID> </row> <row> <webpage_tag_id>2175</webpage_tag_id> <stackPageID>Test</stackPageID> </row> </response>

jQuery で結果を console.log すると、次のようになります。

[Object, Object]
0: Object
STACKPAGEID: "Test"
WEBPAGE_TAG_ID: "2096"
__proto__: Object
1: Object
STACKPAGEID: "Test"
WEBPAGE_TAG_ID: "2175"

すばらしいのですが、なぜフィールドが大文字になっているのですか? 問題は、次のコードが「未定義」を出力することです。

$.each(updateArr, function(index,item) {            
    console.log(item.webpage_tag_id);
}); 

...しかし、これは正しい結果を返します:

   $.each(updateArr, function(index,item) {         
        console.log(item.WEBPAGE_TAG_ID);
    }); 

誰もこのような問題について聞いたことがありますか?

これは私が解析するために使用する関数です:

$(xml).find("row").each(function () {   

        var idx=0;
        var name='';
        var $currentNode = $(this);
        var rowObj = new Object();  
        var nodeName = $currentNode.children()[idx].nodeName;

        while( nodeName ) 
        {
            rowObj[nodeName] = $currentNode.find(nodeName).text();

            if ($currentNode.children()[idx]) {
                 nodeName = $currentNode.children()[idx].nodeName
            } else {
                nodeName=false;
            }

            idx++;
        }

        arr.push(rowObj);       
    });
4

1 に答える 1

3

$(string)文字列を (DOM API を使用して) HTMLとして解析し、ブラウザーが大文字に正規化します。

$.parseXML(xml)実際の XML DOM を返すが必要です。
おそらく、その周りに jQuery オブジェクトを作成することもできます。($(XML DOM element)問題なく、HTML として解析されません)

http://api.jquery.com/jQuery.parseXML/

于 2013-05-22T00:17:49.103 に答える