Ошибка синтаксического анализа XML на Android, но работает на iPhone - PullRequest
1 голос
/ 17 ноября 2011

Ссылка на Q & A в Appcelerator: Ошибка синтаксического анализа XML на Android, но работает на 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);
}

Вызов функции: это из метода onload () Ti.Network.HttpClient

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

Выход iPhone:

Архив: [объект TiDOMNodeList]

[INFO] Item: [object TiDOMNodeList]

[INFO] Длина: 1

Вывод Android:

[ИНФО] [3,7225] Архив: [Ti.NodeList]

[ИНФО] [1,7226] Item: [KrollMethod item]

[INFO] [2,7228] Длина: 0 [INFO]

[235,7466] Библиотека отправлена ​​в вылов: JavaException: java.lang.NullPointerException: null

1 Ответ

0 голосов
/ 17 ноября 2011

Проверьте ссылку:

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:.

...