1

我在 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 真的还是测试版,不是吗。

4

0 回答 0