当前位置: 代码迷 >> Web前端 >> Ext多层嵌套记录解析有关问题
  详细解决方案

Ext多层嵌套记录解析有关问题

热度:409   发布时间:2012-11-15 15:16:15.0
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可以解析出内层来:

var?store1?=?new?Ext.data.JsonStore({
????url:?'./RowExpanderGrid.json',
????root:?'bills',
????fields:?['ad',?'count',?'money',?'type',?'order']
});
store1.load();
store1.on("load",?function(){

});
但数据得是json格式,如:

{

??? 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'}

?????? ]?????

??? }]

}

下面是内存结构:


  相关解决方案