Я пытаюсь получить данные XML с устройства MIDP на сервлет. Сервлет получает данные следующим образом -
DataInputStream dis = new DataInputStream((InputStream) request.getInputStream());
String readUTF = dis.readUTF();
После того, как я сделал это из MIDP, я подумал, что все кончено. Но теперь у меня возникли проблемы с преобразованием readUTF в InputStream. Я хочу разобрать строку XML. Я использовал kXML 2.3.0 и вот код -
XmlPullParser xpp = new KXmlParser();
try {
xpp.setInput(new InputStreamReader(new ByteArrayInputStream(readUTF.getBytes("UTF-8"))));
int event = xpp.getEventType();
if (event != xpp.END_DOCUMENT) {
System.out.println("Inside Document");
if (xpp.getName() != null) {
System.out.println("The tag is not null");
if (xpp.getName().equals("title")) {
System.out.println("Title =" + xpp.getText());
} else if (xpp.getName().equals("note")) {
System.out.println("Note =" + xpp.getText());
} else if (xpp.getName().equals("priority")) {
System.out.println("Priority =" + xpp.getText());
}
}
event = xpp.next();
}
}
Проблема, с которой я сталкиваюсь, заключается в том, что только Внутренний документ напечатан. Это означает, что второй оператор print не имеет возможности выполнить. Я использовал Dom4j для того же.
SAXReader sr = new SAXReader();
sr.read(stringReader);
System.out.println(sr.getDocumentFactory().createDocument().asXML());
В результате получается что-то подобное:
INFO: <?xml version="1.0" encoding="UTF-8"?>
Исходная строка - <?xml version='1.0' encoding='UTF-8' ?> <data> <task><title>dsfsdfds</title><note>null</note><priority>High</priority></task><task><title>sdfsdfdsf</title><note>null</note><priority>High</priority></task> </data>
Я проверил XML для него, и он отлично работает. Есть ли проблема для преобразования UTF-8 в InputStreams? И есть ли другой способ синтаксического анализа моей строки XML для данных.