我在 SDCard 上有一个 XML 文件,它是从服务器下载的。我正在尝试打开并读取该 XML,以便在我的应用程序中使用它。我打开并阅读它很好,但 JQuery 在解析它时冻结了。
一旦我得到文件,我就会这样做:
var reader = new FileReader();
reader.onloadend = function (evt) {
parseXML(evt.target.result);
};
reader.readAsText(file);
然后我开始像这样解析:
function parseXML(xml){
$(xml).find('recipe').each(function(){
它停在那里。如果我使用 JQuery 的 ajax 方法加载应用内 XML,它工作正常。那么,在 PhoneGap 中使用 FileReader 加载 XML 数据有什么特别之处吗?
更新:好的,在另一个开发人员的大量时间和帮助下,问题似乎是 PhoneGap 中的一个错误。特别是 FileTRansfer 对象。
我正在这样做:
var ft = new FileTransfer();
var dlPath = dataDir.fullPath + "/recipes.xml";
ft.download("http://design.mydomain.com/dave/humana/recipes/recipes.xml", dlPath, addedNewRecipes, addError);
而且我会在 addedNewRecipes 中找到下载成功的痕迹。它确实......只是不是全部。该文件被截断,这就是导致 parseXML 失败的原因。整个 XML 文件大约有 90KB(约 1600 行),它被截断为 50 行。
用 FileWriter 对象替换了 FileTransfer,它现在可以工作了。
PhoneGap/Cordova 真的还是测试版,不是吗。