项目中遇到Ext的Grid需要从Server动态获取XML信息, 查看API知需要使用ScriptTagProxy. 但是API只给出Json的解决方案, 对XML没有做描述.
下面给出XML的方案:

js中添加一段代码:

1
2
3
4
5
6
7
8
9
10
11
window.parseXml = function(xml){
    if (window.DOMParser){
        return new DOMParser().parseFromString(xml, 'text/xml');
    }
    if (window.ActiveXObject) {
        var doc = new ActiveXObject('Microsoft.XMLDOM');
        doc.async = 'false';
        doc.loadXML(xml);
        return doc;
    }
};

则服务器返回的信息中格式要处理如下形式:

1
stcCallback1(parseXml('<?xml version="1.0" encoding="UTF-8"?><message success="true"><contact><name><first>Jack</first><last>Slocum</last></name><company>Ext JS</company><email>support@extjs.com</email><state>OH</state><dob>04/15/2007</dob></contact></message>'))

注意和API中Json的区别: 添加了一个parseXml的方法, 同时还多了圆括号内的 '.
注意要把xml中的 ' 和 \ 添加转义符号 \
ext 3.1测试通过

© 2010 阿单工作室 Suffusion WordPress theme by Sayontan Sinha