Синтаксический анализ XML не работает на Android-сборке приложения lwuit - PullRequest
3 голосов
/ 07 февраля 2012

Я использую синтаксический анализатор Kxml2 для анализа xml-ответа, полученного в качестве ответа с удаленной страницы. Он предназначен для аутентификации пользователя, а в возвращенном xml содержится несколько подробностей о пользователе. Приложение построено на LWUIT 1.5 и работает в версиях MIDP и Blackberry. На версии для Android это не работает. Есть ли какие-то дополнительные спецификации, которые я должен добавить, чтобы Android работал правильно?

1 Ответ

4 голосов
/ 07 февраля 2012

В LWUIT есть XMLParser, он очень прост в использовании.Вы можете попробовать использовать это.Он отлично работает в моих приложениях MIDP и BB.Я не могу проверить это в Android, но я думаю, что это может быть решением.Как вы портируете свои приложения LWUIT на Android?

ADD

Хорошо, я постараюсь объяснить использование этого парсера как можно лучше

Вам необходимо импортировать эти пакеты:

import com.sun.lwuit.xml.Element;
import com.sun.lwuit.xml.XMLParser;

В моем проекте я извлекаю XML из HTTPConnection.

Предположим, что XML выглядит следующим образом:

  <?xml version="1.0" encoding="UTF-8"?>
    <xml>
     <TagFromXML>
       <child>
         <data>HI</data>
       </child>
     </TagFromXML>
    <TagFromXML>
      <child>
         <data>HI2</data>
       </child>
     </TagFromXML>
    </xml>

Затем сделайте следующее:

InputStream is = hc.openInputStream();
InputStreamReader isr = new InputStreamReader(is, "utf-8");
XMLParser myParser = new XMLParser();
Element e = myParser.parse(isr);
Vector tagVector = e.getChildrenByTagName("TagFromXML");
for(int i = 0; i<tagVector.size();i++){
 Element singleTag = (Element) tagVector.elementAt(i);
 Element child = (Element) (singleTag.getChildrenByTagName("child")).elementAt(0);
 Element data = (Element) (child.getChildrenByTagName("data")).elementAt(0);
 System.out.println("DATA: " + data.getChildAt(0).getText());
}

Вы получите

HI

HI2

Надеюсь, это сработает для вас.

...