我从 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"
很好,但是为什么这些字段要大写?问题是以下代码输出“未定义”:
$.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)
关于php - jQuery 将 XML 返回的字段名称大写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16681517/