ExtJS Xml reader错误信息

时间:2014-01-08 12:56:18

标签: xml extjs

使用Ext.form.action.Submit()上传文件后,我以XML格式获得返回结果。

<KeyValuePairOfbooleanstring xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/System.Collections.Generic">
<key>true</key>
<value>path/to/filename.ext</value>
</KeyValuePairOfbooleanstring>

所以我试过

form.errorReader = Ext.create('Ext.data.reader.Xml', {
    success: 'key',
    file : 'value'
});

错误消息在Reader.js中显示Uncaught TypeError: Cannot read property 'prototype' of undefined

如何更改XmlReader以接受上述Xml格式并提供成功和文件值的任何想法?

编辑:

我以不会引发更多js错误的方式构建了errorReader。但我仍然没有找到如何访问我的成功处理程序。

form.errorReader = Ext.create('Ext.data.reader.Xml', {
    record : 'KeyValuePairOfbooleanstring',
    success: 'key',
    result: 'value',
    model: {
        prototype: {
            fields:['value']
        }
    }
});

并取得成功:

success: function(fp, o) {
    alert(o.result); // object object
    alert(Object.keys(o.result).join(',')); // success,errors
    Ext.getCmp("companyLogo").setSrc=o.result; // does nothing
    Ext.Msg.alert('Success', 'Processed file "' + o.response.responseXml + '" on the server'); // undefined
},

1 个答案:

答案 0 :(得分:1)

我不确定你是如何特别回到xml的。但是,读者能够在下面的示例中解析xml。这是我的工作代码,我在console.log()中解析了数据。

var xml = '<KeyValuePairOfbooleanstring xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/System.Collections.Generic"><key>true</key><value>path/to/filename.ext</value></KeyValuePairOfbooleanstring>';
        var doc = new DOMParser().parseFromString(xml, 'text/xml');
        Ext.define('MyModel', {
            extend:'Ext.data.Model',
            fields: [{
                name: 'key',
                type:'auto'
            }, {
                name: 'value',
                type:'auto'
            }]
        });
        var s = Ext.create('Ext.data.Store', {
            autoLoad: true,
            data: doc,
            model:'MyModel',
            proxy: {
                type: 'memory',
                reader: {
                    type: 'xml',
                    record: 'KeyValuePairOfbooleanstring'
                }
            }
        });
        console.log(s.data.items[0].data);