Ext多层嵌套记录解析问题
如数据格式如下:
<? xml version = "1.0" encoding = "UTF-8" ?>
< Bills >
< Bill >
< Ad > SC2AAk99 </ Ad >
< Count > 4 </ Count >
< Money > 100.32 </ Money >
< Type > 后符费 </ Type >
< Orders >
< Order >
< Id > 1 </ Id >
< No > 20100816 </ No >
< Name > 订单名称 1 </ Name >
< Money > 123 </ Money >
</ Order >
< Order >
< Id > 2 </ Id >
< No > 20100816 </ No >
< Name > 订单名称 1 </ Name >
< Money > 123 </ Money >
</ Order >
< Order >
< Id > 3 </ Id >
< No > 20100816 </ No >
< Name > 订单名称 1 </ Name >
< Money > 123 </ Money >
</ Order >
</ Orders >
</ Bill >
< Bill >
< Ad > SC2AAk98 </ Ad >
< Count > 2 </ Count >
< Money > 100.32 </ Money >
< Type > 后符费 </ Type >
< Orders ></ Orders >
</ Bill >
< Bill >
< Ad > SC2AAk97 </ Ad >
< Count > 5 </ Count >
< Money > 100.32 </ Money >
< Type > 先符费 </ Type >
< Orders ></ Orders >
</ Bill >
< TotalRecord > 3 </ TotalRecord >
</ Bills >
这是一个多层嵌套记录,使用XML无法解析,如下:
var store = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url : './RowExpanderGrid.xml' ,
method : "GET"
}),
reader: new Ext.data.XmlReader ({
totalRecords : "TotalRecord" ,
record : 'Bill'
}, [ 'Ad' , 'Count' , 'Money' , 'Type' , 'Orders' ])
});
store.on( "load" , function (t, r, o){
alert(r.length);
})
store.load();
下是内存结构:
使用JsonStore可以解析出内层来:
{
bills : [{
ad : "SC2AAk99",
count: 1,
money: 123 ,
type: 1,
order: [
{id: 1, no: 11, name: "name11", money: '100'},
{id: 2, no: 12, name: "name12", money: '100'},
{id: 3, no: 13, name: "name13", money: '100'},
{id: 4, no: 14, name: "name14", money: '100'}
]
}, {
ad : "SC2AAk98",
count: 2,
money: 22 ,
type: 1,
order: [
{id: 21, no: 211, name: "name211", money: '200'},
{id: 22, no: 212, name: "name212", money: '200'},
{id: 23, no: 213, name: "name213", money: '200'},
{id: 24, no: 214, name: "name214", money: '200'}
]
}]
}
下面是内存结构: