var xml2;
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady() {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}
function gotFS(fileSystem){
fileSystem.root.getFile("ccw.xml", null, gotFile, fail);
}
function gotFileEntry(fileEntry) {
fileEntry.file(gotFile, fail);
}
function gotFile(file) {
readAsText(file);
}
function readAsText(file) {
var reader = new FileReader();
reader.readAsText(file);
reader.onload = function(){
};
xml2 = reader.result;
writeJson();
}
function fail(evt) {
console.log(evt.target.error.code);
}
function parseXml(xml) {
var dom = null;
if (window.DOMParser) {
try {
dom = (new DOMParser()).parseFromString(xml, "text/xml");
}
catch (e) { dom = null; }
}
else if (window.ActiveXObject) {
try {
dom = new ActiveXObject('Microsoft.XMLDOM');
dom.async = false;
if (!dom.loadXML(xml)) // parse error ..
window.alert(dom.parseError.reason + dom.parseError.srcText);
}
catch (e) { dom = null; }
}
else
alert("oops");
return dom;
}
function writeJson(){
var json;
// for(var i = 0 ; i < xml.length ; i++) {
show("\n\n" + (json = xml2json(parseXml(xml2), " ")) + "\n\n");
// console.log("====="+i+"/"+xml.lenght+"=====");
// }
}
function show(s) {
document.getElementById("out").innerHTML += (s+"\n").replace(/&/g, "&").replace (/</g,"<").replace(/>/g,">").replace(/\n/g, "<br/>") + "<hr/>";
}
此代码是xml到json解析代码。我按照phonegap参考。但我的文件阅读器不会改变stateReady。总是状态0.请帮帮我.. filereader.result方法在phonegap中不起作用? 我想回家。 :-(。我将永远看到这篇文章。
答案 0 :(得分:0)
嗯,你可能已经解决了,但是如果对其他人有用,你的回调没有正确链接,只需用这一行改变你的行
fileSystem.root.getFile("ccw.xml", null, gotFile, fail);
使用
fileSystem.root.getFile("ccw.xml", null, gotFileEntry, fail`);
尝试这一点,也有助于添加控制台日志消息,以便您更容易调试和了解发生的事情以及以何种顺序。