我送過Java代碼中的XML請求,並使用下面的代碼獲取XML響應URL的XML響應:解析使用STAX
BufferedReader rd = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = rd.readLine()) != null) {
sb.append(line + '\n');
}
現在我需要使用STAX所以我來解析XML響應寫了一個方法,用於分析:
XMLReader reader = new XMLReader();
ArrayList<String> List = reader.parse(connection.getInputStream());
和在分析()我有讀者= factory.createXMLEventReader(connection.getInputStream());
但是我收到以下錯誤:
javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1]
Message: Premature end of file.
at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:593)
at com.sun.xml.internal.stream.XMLEventReaderImpl.nextEvent(XMLEventReaderImpl.java:85)
可有人請告知我在哪裏,我錯了嗎?
感謝,
姆斯瓦蒂
對不起,問題是類似這樣的: http://stackoverflow.com/questions/5976602/error-while-parsing-xml-file-with-stax 由於之前的解析,我正在讀的內容,解析失敗。因爲一旦你閱讀了輸入流,流關閉,解析就沒有什麼可讀的了。 – swati
你真的想從連接讀取*相同的*響應兩次(一次到StringBuild,一次解析)? –