Javascript 如何从Ext.data.Store中的xml获取数据

Javascript 如何从Ext.data.Store中的xml获取数据,javascript,extjs,sencha-touch,sencha-touch-2,Javascript,Extjs,Sencha Touch,Sencha Touch 2,您好,我是一个新的开发与sencha移动应用程序。我在这里发布之前在谷歌上做了一项研究,但没有找到任何解决方案。我试图从具有以下格式的xml中获取数据 <?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:

您好,我是一个新的开发与sencha移动应用程序。我在这里发布之前在谷歌上做了一项研究,但没有找到任何解决方案。我试图从具有以下格式的xml中获取数据

<?xml version="1.0" encoding="UTF-8"?>
<rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
>
<channel>
    <title></title>
    <link></link> 
    <description></description>
    <language>en-us</language>
    <pubDate>Mon, 08 Jul 2013 13:12:39 +0000</pubDate>
    <lastBuildDate>Mon, 08 Jul 2013 13:12:39 +0000</lastBuildDate>
    <managingEditor></managingEditor>
    <item>
        <position>1</position>
        <image>img/2.png</image>
        <name>Sun</name>
        <small_desciption>dfsfsdfsdf</small_desciption>
    </item>

    <item>
        <position>2</position>
        <image>img/2.png</image>
        <name>Hot</name>
        <small_desciption>fsdfdsfsdf</small_desciption>
    </item> 
       ........
</channel>
</rss>

美国英语
2013年7月8日星期一13:12:39+0000
2013年7月8日星期一13:12:39+0000
1.
img/2.png
太阳
DFSFDFDF
2.
img/2.png
热的
fsdfdsfsdf
........
这是我的密码

Ext.regModel('test', {
             fields: [{
                      name: 'image',
                      type: 'string'
                      }, {
                      name: 'name',
                      type: 'string'
                      }, {
                      name: 'small_desciption',
                      type: 'string'
                      }, {
                      name: 'position',
                      type: 'string',
                      }]
             });


ToolbarDemo.views.Testtab = Ext.extend(Ext.Panel, {
                                            title: "Test",
                                            iconCls: "test",
                                            styleHtmlContent: true,
                                            style:"background-color:#FFFFFF;",                                           


                                        dockedItems: [


                                                      {
                                                      xtype: "toolbar",
                                                      title: "Test",
                                                      items : [
                                                               { xtype : 'spacer' },
                                                               // { xtype : 'spacer' },                                                             
                                                               ],

                                                      },

                                                      ],
                                             layout: {
                                             type: 'fit'
                                             },




                                             initComponent: function() {

                                              this.setLoading(true,true);
                                             var proxyUrl = 'http://mydomain/newsfeed/'

                                             var store = new Ext.data.Store({
                                                                            model: 'test',
                                                                            proxy: {
                                                                            type: 'ajax',
                                                                            url: proxyUrl,
                                                                            reader: {
                                                                            type: 'xml',
                                                                            record: 'item',
                                                                            }
                                                                            },
                                                                            datachanged: function(){
                                                                            var items = [];


                                                                            store.each(function(rec){


                                                                                       items.push({


                                                                                                  html: [
                                                                                                         '<div class="main"><div class="thumb"><div class="contain">{position}</div><div class="image"><img src="http://mydomain/{image}.jpg" width="280" height="100"></div></div><div class="mainentry"><div class="maintitle">{name}</div><div class="description">{small_desciption}</div></div></div>',


                                                                                                         ]



                                                                                                  });
                                                                                       });

                                                                            }




                                                                            });
                                             store.read();
                                             ToolbarDemo.views.Testtab.superclass.initComponent.call(this);

                                             }  });

Ext.reg('testtab', ToolbarDemo.views.Testtab);
Ext.regModel('test'{
字段:[{
名称:'图像',
键入:“字符串”
}, {
姓名:'姓名',
键入:“字符串”
}, {
名称:“小描述”,
键入:“字符串”
}, {
姓名:'职位',
键入:“字符串”,
}]
});
ToolbarDemo.views.Testtab=Ext.extend(Ext.Panel{
标题:“测试”,
iconCls:“测试”,
styleHtmlContent:对,
样式:“背景色:#FFFFFF;”,
摘要:[
{
xtype:“工具栏”,
标题:“测试”,
项目:[
{xtype:'间隔'},
//{xtype:'间隔'},
],
},
],
布局:{
类型:“适合”
},
initComponent:function(){
此.setLoading(true,true);
变量proxyUrl=http://mydomain/newsfeed/'
var store=新的Ext.data.store({
模型:“测试”,
代理:{
键入:“ajax”,
url:proxyUrl,
读者:{
键入:“xml”,
记录:'项目',
}
},
datachanged:函数(){
var项目=[];
存储。每个(功能(rec){
推({
html:[
“{position}{name}{small_description}”,
]
});
});
}
});
store.read();
ToolbarDemo.views.Testtab.superclass.initComponent.call(this);
}  });
Ext.reg('testtab',ToolbarDemo.views.testtab);
我做错了什么


谢谢你在Extjs中,如果你得到的是字符串格式的xml,你可以试试这个

var xmlString = <channel>.....</channel> //Your xml data in string format 
parser = new DOMParser();
var xmlData = parser.parseFromString(xmlString.body,"text/xml");
var channel = xmlMessage.childNodes[0];
if(channel){
               var image       = xmlData.getElementsByTagName("image")[0].childNodes[0].nodeValue;
               var position    = xmlData.getElementsByTagName("position")[0].childNodes[0].nodeValue;
               var name        = xmlData.getElementsByTagName("name")[0].childNodes[0].nodeValue;
               var small_desciption = xmlData.getElementsByTagName("small_desciption")[0].childNodes[0].nodeValue;
}
var xmlString=//您的xml数据为字符串格式
parser=新的DOMParser();
var xmlData=parser.parseFromString(xmlString.body,“text/xml”);
var channel=xmlMessage.childNodes[0];
中频(信道){
var image=xmlData.getElementsByTagName(“图像”)[0]。子节点[0]。节点值;
var position=xmlData.getElementsByTagName(“位置”)[0].childNodes[0].nodeValue;
var name=xmlData.getElementsByTagName(“名称”)[0].childNodes[0].nodeValue;
var small_description=xmlData.getElementsByTagName(“small_description”)[0]。子节点[0]。节点值;
}

然后用html编写?像这个例子吗?@George,当你得到xml格式的响应时,你可以使用它并分别解析它。答案中只给出了从xml获取数据的想法。