首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从Ext.data.Store中的xml获取数据

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

Stack Overflow用户
提问于 2013-07-08 21:19:33
回答 1查看 180关注 0票数 0

你好,我是一个用sencha开发移动应用程序的新手。在这里发帖之前,我已经做了一个搜索,但我没有找到任何解决方案。我正在尝试从具有以下格式的xml中获取数据

代码语言:javascript
运行
复制
<?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>

下面是我的代码

代码语言:javascript
运行
复制
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);

我哪里做错了?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-08 21:46:32

代码语言:javascript
运行
复制
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;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17527720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档