Pergunta

Quero ler este XML usando um Ext.data.Model em uma loja ExtJS:

<interfaces>
    <green> 
        <name>Eth0</name>
        <enabled>true</enabled>
    </green>

    <red>
        <name>Eth1</name>
        <enabled>true</enabled>
    </red>
</interfaces>

Quero mostrar 'Eth0' e 'Eth1' na coluna 'nome' da minha grade de interfaces.

este mapeamento {nome:'interface', mapeamento:'green> name'} mostra apenas Eth0.

como posso fazer um mapeamento para mostrar Eth0 e Eth1 na grade?Não devo modificar a estrutura do arquivo xml.

desde já, obrigado

Foi útil?

Solução

O record configuração do XmlReader é um seletor especificado em relação ao root marcação.

Para ler todas as tags filhas da raiz como um registro, independentemente do nome da tag, podemos selecionar todas as tags filhas usando o comando > * seletor.

Ext.define('MyModel', {
    extend: 'Ext.data.Model',
    fields: [ 'name', 'enabled' ],
    proxy: {
        type: 'ajax',
        reader: {
            type: 'xml',
            root: 'interfaces',
            record: '> *'
        }
    }
});
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top