Парсинг xml в javaME

import org.kxml2.io.KXmlParser;
import org.xmlpull.v1.XmlPullParserException;
import javax.microedition.midlet.MIDlet;
import java.io.InputStreamReader;
import java.io.IOException;
public class MobileXmlParser extends MIDlet {
private KXmlParser parser;
private InputStreamReader reader;
/* класс InputStreamReader используется для чтения символов из байтовых потоков */
private boolean doJob = true;
private int event;
private String name;
public MobileXmlParser() {
parser = new KXmlParser();
reader = new InputStreamReader(this.getClass().getResourceAsStream("data.xml"));
/* файл data.xml нужно перед сборкой проекта положить в папку res
после этого к его содержимому можно будет обращаться как к InputStream
Заметьте, что метод getResourceAsStream является profile specific - говоря
по-русски, в J2SE работает совсем не так как в J2ME
*/
/* часто XML данные хранятся в переменной типа String. В этом случае мы бы могли
создать reader, например, так:
String string="<?xml....";
reader = new InputStreamReader(new ByteArrayInputStream(string.getBytes()));
*/
}
public void startApp() {
try {
parser.setInput(reader); //назначим парсеру источник данных
} catch (XmlPullParserException e) {
System.out.println("Не удалось связать парсер с потоком данных");
}
/* ну а теперь распрасим документ и выведем содержимое на консоль */
while (doJob) {
try {
event = parser.next(); //переместим курсор на следующий элемент документа
name = parser.getName(); //получим имя этого элемента
if (event == KXmlParser.END_DOCUMENT) {
doJob = false;
break;
}
if ((event == KXmlParser.START_TAG) && (name.startsWith("trunk"))) {
/* Achtung! В моей WTK2.2 проверка условия (name == "trunk")
работает неправильно, я так и не смог понять почему. Поэтому
приходится делать проверку методом startWith()
*/
System.out.println(name + ":" + parser.getAttributeValue(0));
} else if ((event == KXmlParser.START_TAG) && (name.startsWith("branch"))) {
System.out.print(" " + name + ":" + parser.getAttributeValue(0) + "-");
System.out.println(parser.getAttributeValue(1));
}
} catch (XmlPullParserException e) {
System.out.println("Во время парсинга с парсером случилось что-то нехорошее");
} catch (IOException e) {
System.out.println("Во время парсинга парсер потерял связь с источником данных");
}
}
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
Скачать файл txt fb2
Добавил: Владик (22 мар 2013 г., 1:00)
Рейтинг: (1)
Прочитано: 4208