我从 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>
当我 console.log 在 jQuery 中记录结果时,我得到:
[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);
});