Javascript 如何从Ext.data.Store中的xml获取数据
您好,我是一个新的开发与sencha移动应用程序。我在这里发布之前在谷歌上做了一项研究,但没有找到任何解决方案。我试图从具有以下格式的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:
<?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获取数据的想法。