jQuery将XML返回的字段名大写


jQuery capitalizing field names from XML return?

我将从PHP页面输出此XML并在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"

很好,但是为什么字段大写?问题是以下代码输出"undefined":

$.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);       
    });

$(string)将字符串解析为HTML(使用DOM api),浏览器将其规范化为大写。

需要$.parseXML(xml),它返回一个真正的XML DOM。
您可能还想围绕它创建一个jQuery对象。($(XML DOM element)是好的,不会解析为HTML)

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