我有一个大的xml文档,我正试图在javascript中处理成一个数组。
<DR> <C> <SWDGDRC> <CID>0</CID> <V>06/01/2012 00:00:00</V> </SWDGDRC> <SWDGDRC> <CID>1</CID> <V>1131</V> </SWDGDRC> <SWDGDRC> <CID>2</CID> <V>28800</V> </SWDGDRC> </C> <rowid>0</rowid> </DR> <DR> <C> <SWDGDRC> <CID>0</CID> <V>06/02/2012 00:00:00</V> </SWDGDRC> <SWDGDRC> <CID>1</CID> <V /> </SWDGDRC> <SWDGDRC> <CID>2</CID> <V /> </SWDGDRC> </C> <rowid>1000</rowid>
它由多个DR(datarow)组成,每个DR都有多个C(列)和一个rowid。 我正在尝试将所有这些数据循环到一个关联数组中:
for(var i=0; i < DR.length; i++) { // loop DR
for(var j=0; j < DR[i].getElementsByTagName('C').length; j++) { // loop C
for(var k=0; k < DR[i].getElementsByTagName('C')[j].getElementsByTagName('SWDGDRC').length; k++) { //loop SWDGDRC
columnData[i] = {
"rowid": DR[i].getElementsByTagName('rowid')[0].textContent,
"column": {
columnID: DR[i].getElementsByTagName('C')[j].getElementsByTagName('SWDGDRC')[k].getElementsByTagName('CID')[0].textContent,
value:DR[i].getElementsByTagName('C')[j].getElementsByTagName('SWDGDRC')[k].getElementsByTagName('V')[0].textContent
}
};
}
}
}
问题是我想在“column”键中创建一个新数组,它循环所有的C(列)数据,所以我可以使用以下内容访问这些数据:columnData [0] ['column'] [0 ] [ 'ColumnID的']
答案 0 :(得分:0)
DRCollection [] - &gt; DRCollection [0] = row_id,DRCollection [1] = colCollection []。
答案 1 :(得分:0)
for(var i=0; i < DR.length; i++) { // loop DR
for(var j=0; j < DR[i].getElementsByTagName('C').length; j++) { // loop C
columnData[i] = new Array(DR[i].getElementsByTagName('C')[j].getElementsByTagName('SWDGDRC').length);
columnData[i] = {
rowid: DR[i].getElementsByTagName('rowid')[0].textContent
}
for(var k=0; k < DR[i].getElementsByTagName('C')[j].getElementsByTagName('SWDGDRC').length; k++) { //loop SWDGDRC
columnData[i][k] = {
columnID: DR[i].getElementsByTagName('C')[j].getElementsByTagName('SWDGDRC')[k].getElementsByTagName('CID')[0].textContent,
value:DR[i].getElementsByTagName('C')[j].getElementsByTagName('SWDGDRC')[k].getElementsByTagName('V')[0].textContent
};
}
}
}
使用前面的代码修复了它。首先,我创建一个新数组,其中包含我要循环的数组的长度,然后设置'rowid'字段。这样我就可以通过以下方式访问我的数据:columnData [0] [0] ['columnID']