我正在嘗試將XML數據從MIDP設備獲取到Servlet。 Servlet正在獲取以下數據 -將UTF字符串轉換爲InputStream
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();
}
}
我遇到的問題是,只有裏面的文件是不斷印刷。這意味着第二個打印語句沒有機會執行。我用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字符串數據。
你說「第二個打印語句沒有機會執行」 - 爲什麼不添加'else'子句來顯示'xpp.getName()* * *是否爲空? –
但是這意味着沒有節點,因爲null返回了嗎? – Chan
好吧,這意味着它不是開始/結束元素節點或實體引用。它可能是TEXT,或START_DOCUMENT等。 –