1

Appcelerator Q&A リンク: Android では XML 解析に失敗するが、iPhone では動作する

Titanium が主に使用されているのと同じコードで、iPhone と Android の両方の携帯電話で動作する一般的なアプリケーションを準備しています。同じコードを使用すると、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 (言語コード、バージョン、this.responseXML.documentElement);

iPhoneの出力:

アーカイブ: [オブジェクト TiDOMNodeList]

[情報] アイテム: [オブジェクト TiDOMNodeList]

[情報] 長さ: 1

Android の出力:

[情報] [3,7225] アーカイブ: [Ti.NodeList]

[INFO] [1,7226] アイテム: [KrollMethod アイテム]

[情報] [2,7228] 長さ: 0 [情報]

[235,7466] ライブラリがキャッチされました: JavaException: java.lang.NullPointerException: null

4

1 に答える 1

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 を再解析することで回避できます。

于 2011-11-17T10:46:24.813 に答える