如何在ExtJS中读取本地XML文件?

如何在ExtJS中读取本地XML文件?,xml,extjs,sencha-architect,Xml,Extjs,Sencha Architect,我使用ExtJS4.2。读取本地XML文件的最简单方法是什么?我知道可以使用商店和模型,但我更喜欢其他方式。可以使用Ext.Ajax.Request吗 例如,这是我的XML文件内容: <LocaleText> <Item> <CTRO_CONTROLID>lblLoginTitle</CTRO_CONTROLID> <CTRO_CONTROLTYPE>label</CTRO_CONTROLTYPE>

我使用ExtJS4.2。读取本地XML文件的最简单方法是什么?我知道可以使用商店和模型,但我更喜欢其他方式。可以使用Ext.Ajax.Request吗

例如,这是我的XML文件内容:

<LocaleText>
  <Item>
    <CTRO_CONTROLID>lblLoginTitle</CTRO_CONTROLID>
    <CTRO_CONTROLTYPE>label</CTRO_CONTROLTYPE>
  </Item>
    <Item>
    <CTRO_CONTROLID>cboLoginLanguage</CTRO_CONTROLID>
    <CTRO_CONTROLTYPE>combobox</CTRO_CONTROLTYPE>
  </Item>
</LocaleText>

lblLoginTitle
标签
地理语言
下拉列表框
如何获取每个项目节点的数据

  • 您可以使用
    Ext.Ajax.request
    中的
    response.responseXML
    来获取xml类型的响应
  • 您可以使用
    Ext.DomQuery
    类从xml中获取数据
  • 例如:

    Ext.Ajax.request({           
        url: '/your/url/here/test.xml',            
        success: function (response, options) {
            var object = response.responseXML;
            var test = Ext.DomQuery.select('Item', object);
            console.log('test', test);
        }
    });

    对于ExtJS3.4和IE7,我的response.responseXML总是显示为空。当然,它可以在IE和其他浏览器的更高版本中使用。奇怪的是response.responseText有xml字符串。最后,我使用window.DOMParser将其加载到一个xmlDoc中(如果IE使用loadXML)。