質問する前に、同様の質問があることを発見しました: Sencha Touch 2, nested XML parsing nodeValue I use model/proxy to load data form xml file, ほぼ成功ですが、レコードの値を読み取れないという問題がありますxml ファイルのノード。私のxmlファイルはこれが好きです:myRecord.js
コード:
<records>
<record attribute='a' id='1'>A</record>
<record attribute='b' id='2'>B</record>
<record attribute='c' id='3'>C</record>
</record>
私のモデルはこれが好きです:
コード:
Ext.define('RecordModel',{
extend: 'Ext.data.Model',
config: {
fields: [
{name: 'recoreAttr', mapping: '@attribute', type:'string'}
{name: 'recordId', mapping: '@id', type:'string'}
{name: 'recordName', mapping: 'record', type:'string'}
],
proxy: {
type:'ajax',
url: 'myRecord.js'
reader: {
type:'xml';
rootProperty:'records'
record:'record', // only occurs for the node configed here
}
}
}
})
次に、「RecordModel」のストアを作成し、load() メソッドを呼び出します。属性 (xml ファイルの a、b、c) と id (xml ファイルの 1、2、3) が正しく読み取られました。しかし、その間の値(私のxmlファイルのA、B、C)は読み取られませんでした。私のマッピング形式が間違っているに違いないと思いましたが、正しいマッピング形式が何を好むのかわかりません。この問題は、プロキシで「レコード」として構成されたノードでのみ発生します。レコード ノードにネストされたノードが 3 つある場合、値は正常に読み取られます。
<records>
<record attribute='a' id='1'>A</record>
<record attribute='b' id='2'>B</record>
<record attribute='c' id='3'>C</record>
<record attribute='c' id='3'>
<nested>D</nested>
</record>
</record>
ネストされたノード値 'D' を読み取ることができます。