你好,我是一个用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>
这是我的代码
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);
我做错了什么?
谢谢
答案 0 :(得分:0)
在 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;
}