当我嵌套子节点时,我目前在ExtJS 4.2.2中的XML解析方面遇到了问题。
在下面的示例中,我展示了我正在获取的用户具有'类型'属性和工具有' type'属性。 (用户'类型'只是一个字符串,但工具'类型'是一个对象,我不确定这是否与问题有关。)
我的问题是,XML解析器似乎正在拾取' type'映射我的User对象然后混淆时的属性,导致用户输入' type'属性为' null' (我希望它是字符串'普通')。
代码示例:
XML示例:
<user>
<id>1</id>
<userName>John Smith</userName>
<type>Normal</type>
<tools>
<tool>
<id>100</id>
<name>Drill</name>
<type>
<size>5.3</size>
<model>Brand name</model>
</type>
</tool>
</tools>
</user>
商店示例:
Ext.create('Ext.data.Store', {
autoLoad: true,
model: 'User',
data: xmlData,
proxy: {
type: 'memory',
reader: {
type: 'xml',
record: 'user'
}
}
});
模型示例:
Ext.define('User', {
extend: 'Object',
fields: [
{name: 'id'},
{name: 'userName'}
{name: 'type'}
],
hasMany: {
model: 'Tool',
name: 'tools',
reader: {
type: 'xml',
record: 'tool'
}
});
Ext.define('Tool', {
extend: 'Object',
fields: [
{name: 'id'},
{name: 'name'}
]
});
非常感谢任何帮助。
谢谢!
答案 0 :(得分:0)
经过深入探索尝试不同的可能解决方案..
我终于找到了实现目标的简单方法!
对于遇到同样问题的其他人,我设法通过添加“映射”来解决这个问题。到我的顶级班级&#39;键入&#39;刚刚附加&#39;&gt;&#39;的字段在物业名称前面。
{name:&#39; type&#39;,mapping:&#39;&gt; type&#39;}
示例:
Ext.define('User', {
extend: 'Object',
fields: [
{name: 'id'},
{name: 'userName'}
{name: 'type', mapping: '>type'}
],
hasMany: {
model: 'Tool',
name: 'tools',
reader: {
type: 'xml',
record: 'tool'
}
});
希望这也有助于其他人!
感谢。