この 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);
});