我正在使用我的extjs解析xml,但它只返回五个组件中的一个。
只有五个组成部分中的第一个。
Ext.regModel('Card', {
fields: ['investor']
});
var store = new Ext.data.Store({
model: 'Card',
proxy: {
type: 'ajax',
url: 'xmlformat.xml',
reader: {
type: 'xml',
record: 'investors'
}
},
listeners: {
single: true,
datachanged: function(){
Ext.getBody().unmask();
var items = [];
store.each(function(rec){
alert(rec.get('investor'));
});
我的xml文件是:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<investors>
<investor>Active</investor>
<investor>Aggressive</investor>
<investor>Conservative</investor>
<investor>Day Trader</investor>
<investor>Very Active</investor>
</investors>
<events>
<event>3 Month Expiry</event>
<event>LEAPS</event>
<event>Monthlies</event>
<event>Monthly Expiries</event>
<event>Weeklies</event>
</events>
<prices>
<price>$0.5</price>
<price>$0.05</price>
<price>$1</price>
<price>$22</price>
<price>$100.34</price>
</prices>
</root>
我只运行代码“Active”出来。 。 。 。
我知道我做错了什么,但我不确定是什么......
请帮忙。 。 。 。
答案 0 :(得分:0)
我的xml格式应该是这样的:
活性 3个月到期 $ 0.5 激进 长期期权 $ 0.05 保守 月刊 $ 1 日间交易员 每月到期日 $ 22 很活跃 周刊 $ 100.34
<?xml version="1.0" encoding="UTF-8"?>
<main>
<root>
<investor>Active</investor>
<event>3 Month Expiry</event>
<price>$0.5</price>
</root>
<root>
<investor>Aggressive</investor>
<event>LEAPS</event>
<price>$0.05</price>
</root>
<root>
<investor>Conservative</investor>
<event>Monthlies</event>
<price>$1</price>
</root>
<root>
<investor>Day Trader</investor>
<event>Monthly Expiries</event>
<price>$22</price>
</root>
<root>
<investor>Very Active</investor>
<event>Weeklies</event>
<price>$100.34</price>
</root>
</main>
答案 1 :(得分:0)
您需要访问有关如何在网格中使用XML的sencha.com教程。 XML Grid Sample
您应该不考虑如何正确构建XML,以便数据存储可以使用它。
答案 2 :(得分:0)
Ext XML网格需要配置为查找要映射到商店/网格中每条记录的重复元素。你已经为investors
配置了它,其中只有1.然后你为investor
映射了一个字段,它只是抓住它遇到的那个“行”的“列”的第一个字段
网格中“行”的重复元素应为investor
,而不是investors
。
更改:record: 'investors'
致:record: 'investor'