Android上的XML解析失败但适用于iPhone

时间:2011-11-17 07:15:39

标签: android xml-parsing appcelerator-mobile titanium-mobile

Appcelerator Q& A Link: XML Parsing failure on Android but works on iPhone

我正在准备一个适用于iPhone和Android手机的通用应用程序,其代码相同,主要用于Titanium。使用相同的代码,我发现XML文档解析的结果不同,我的Android应用程序没有正确加载它。它会导致NULLPointer异常。但是相同的代码在iPhone上完美运行。

你能检查一下吗?

xyz(languageCode, currentVersion, xmldoc) {
try {
  Ti.API.info('Start parsing the library');
  var archiveData = xmldoc.getElementsByTagName('archive');
  Ti.API.info('Archive: ' + archiveData);
  Ti.API.info('Item: ' + archiveData.item);
  Ti.API.info('Lendth: ' + archiveData.length);
  var newVersion = archiveData.item(0).getAttribute('version');
}catch(e){
  Ti.API.info('Library Went In Catch: ' + e);
}

函数调用:来自Ti.Network.HttpClient的onload()方法

  

xyz(languageCode,version,this.responseXML.documentElement);

iPhone的输出:

  

存档:[对象TiDOMNodeList]

     

[INFO]项目:[对象TiDOMNodeList]

     

[INFO] Lendth:1

Android的输出:

  

[INFO] [3,7225]档案:[Ti.NodeList]

     

[INFO] [1,7226]项目:[KrollMethod项目]

     

[INFO] [2,7228] Lendth:0 [INFO]

     

[235,7466] Library Went In Catch:JavaException:java.lang.NullPointerException:null

1 个答案:

答案 0 :(得分:0)

检查链接:

http://developer.appcelerator.com/question/128341/xml-parsing-failure-on-android-but-works-on-iphone#comment-104281

使用以下方法解析XML:

var xml = Ti.XML.parseString(this.responseXML.toString());

xyz(languageCode, version, xml);

“this.responseXML.documentElement”。它在Android上有一些问题(不知道是否报告)。解决方法是使用“Ti.XML.parseString”方法重新解析XML:。