2

質問する前に、同様の質問があることを発見しました: 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' を読み取ることができます。

4

0 に答える 0