我使用帶Chorome 21的HTML5 FileAPI來創建,讀取和修改「users.xml」文件,第一次讀取和修改xml代碼時,一切正常,但在第一次之後,閱讀器沒有正確讀取xml,看起來像freader(我的FileReader var object)保留了以前的結果,並搞亂了新的讀取操作。原始的XML:HTML5 FileReader讀取和修改XML問題
<?xml version='1.0' encoding='utf-8'?><users></users>
我的代碼讀取並添加一個新的子節點:
fs.root.getFile('users.xml', {}, function(fileEntry) {
fileEntry.file(function(file) {
var freader = new FileReader();
freader.onloadend = function(theFile) {
console.log("before: " + this.result);
var strcontent = this.result;
fileEntry.createWriter(function(fileWriter) {
var parsed = new DOMParser().parseFromString(strcontent, "text/xml");
var users= parsed.getElementsByTagName("users")[0];
var user = parsed.createElement("user");
user.setAttribute('id',txt_rfc.value);
var name = parsed.createElement("name");
var textname = parsed.createTextNode(txt_name.value);
name .appendChild(textname);
user.appendChild(name);
users.appendChild(user);
var serializer = new XMLSerializer();
var str = serializer.serializeToString(parsed);
console.log("after: " + str);
var bb = new Blob([str],{type:'charset=utf-8'});
fileWriter.write(bb);
}, errorHandler);
};
freader.readAsText(file);
}, errorHandler);
}, errorHandler);
}
第一次執行讀取並正確寫入這樣的XML:
<?xml version="1.0" encoding="utf-8"?><users><user id="1"><name>John</name></user></users>
但下一次執行FileReader顯示這樣的讀取結果(這是不正確的,我s錯誤):
<?xml version='1.0' encoding='utf-8'?><users/>ser id="1"><name>John</name></user></users>
之後,我的代碼無法繼續寫入,因爲xml讀取結果「損壞」。看起來像FileReader需要「清除」或什麼....任何想法?謝謝!!
thx爲您提供幫助,幾個小時前我想通了。無論如何,我會再次發佈答案,thx :) – gekko