Синтаксический анализ XML не работает на Android-сборке приложения lwuit
Я использую синтаксический анализатор Kxml2 для анализа xml-ответа, полученного в качестве ответа с удаленной страницы. Он предназначен для аутентификации пользователя, и в возвращенном xml содержится несколько подробностей о пользователе. Приложение построено на LWUIT 1.5 и работает в версиях MIDP и Blackberry. На версии для Android это не работает. Есть ли какие-то дополнительные спецификации, которые я должен добавить, чтобы Android работал правильно?
1 ответ
В LWUIT есть XMLParser, он очень прост в использовании. Вы можете попробовать использовать это. Он отлично работает в моих приложениях MIDP и BB. Я не могу проверить это в Android, но я думаю, что это может быть решением. Как вы портируете свои приложения LWUIT на Android?
ДОБАВЛЯТЬ
Ну, я постараюсь объяснить использование этого парсера как можно лучше
Вам необходимо импортировать эти пакеты:
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());
}
Ты получишь
ПРИВЕТ
HI2
Я надеюсь, что это работает для вас.