我正在尝试从客户端的XML字符串加载数据。XML读取器未从xml字符串中获取数据。以下是代码
Ext.define('User', { extend: 'Ext.data.Model',
fields: ['firstname', 'lastname', 'phone']
});
var storeT = Ext.create('Ext.data.Store', { model: 'User',
data: '<users><user><firstname>Jack</firstname><lastname>Jobs</lastname><phone>1234567890</phone></user></users>',
autoLoad: true,
proxy: {
type: 'memory',
reader: {
type: 'xml',
root: 'users',
}
}
});
var user = storeT.first();
console.log("First Name " + user.get('firstname') );StoreT没有记录。有任何提示为什么它无法获取数据吗?
提前谢谢。
发布于 2013-03-06 13:41:11
XmlReader的record配置是必需的。尝试将以下内容添加到您的阅读器配置中:
record: 'user'发布于 2013-03-07 03:17:19
谢谢bmoeskau和Evan,我可以在你们的帮助下解决这个问题。下面是工作代码:我添加了一个函数来获取XMLDoc。
function GetXMLDoc() {
var xmlstring1 = "<users>" +
"<user><firstname>Jack</firstname><lastname>Jobs</lastname><phone>1234567890</phone></user>" +
"</users>" ;
var doc;
if(window.ActiveXObject){
doc = new ActiveXObject("Microsoft.XMLDOM");
doc.async = "false";
doc.loadXML(xmlstring1);
}else{
doc = new DOMParser().parseFromString(xmlstring1,"text/xml");
}
console.log("xml", xmlstring1);
return doc;
}已按如下方式更改读卡器:
var storeT = Ext.create('Ext.data.Store', {
model: 'MyUser',
data: GetXMLDoc(),
autoLoad: true,
proxy: {
type: 'memory',
reader: {
type: 'xml',
root: 'users',
record: 'user',
}
}
});
var user = storeT.first();
console.log("First Name " + user.get('firstname') );谢谢..
https://stackoverflow.com/questions/15238313
复制相似问题