Настройка Ext.data.XmlStore для получения пользовательских тегов из ответа - PullRequest
0 голосов
/ 13 ноября 2010

Привет, я получил следующий xml с сервера: Код:

текст ссылки

Кажется, я не могу правильно настроить конфигурацию магазина xml. В частности, я хочу иметь возможность получать пользовательские теги: имя, интра и переходы, которые являются свойствами возвращаемого набора результатов. Большое спасибо!

1 Ответ

0 голосов
/ 14 ноября 2010

Попробуйте этот код (замените test.xml на ваш xml-источник)

    // create the Data Store
var store = new Ext.data.Store({
    // load using HTTP
    url: 'test.xml',
    // the return will be XML, so lets set up a reader
    reader: new Ext.data.XmlReader({
           // records will have an "customer" tag
           record: 'customer',
       }, ['id','field1', 'field2', 'field3'])
});

// create the grid
var grid = new Ext.grid.GridPanel({
    store: store,
    columns: [
        {header: "id", width: 120, dataIndex: 'id', sortable: true},
        {header: "field1", width: 180, dataIndex: 'field1', sortable: true},
        {header: "field2", width: 115, dataIndex: 'field2', sortable: true},
        {header: "field3", width: 100, dataIndex: 'field3', sortable: true}
    ],
    renderTo:'example-grid',
    width:540,
    height:200
});
store.load();

, чтобы получить теги: name, intra и referrals. Я использовал Ext.DomQuery, который позволяет анализировать xml (попробуй для внутренних и реферальных)

Ext.Ajax.request({
       url: 'test.xml',
       success: function(response){
        console.debug(response);
        if (Ext.DomQuery.selectNode("/rootNode/name", response.responseXML)) {
            var name = Ext.DomQuery.selectValue("/rootNode/name",  response.responseXML);
            console.debug(name);
        } 

       },
       failure: function () { console.log('failure');}
    });
...