我正在尝试从客户端加载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没有记录。任何提示无法获取数据的提示?
提前致谢。
答案 0 :(得分:2)
XmlReader的record
配置是必需的。尝试将此添加到您的阅读器配置:
record: 'user'
答案 1 :(得分:0)
感谢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') );
谢谢..