2011-07-05 95 views
1

我送過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) 

可有人請告知我在哪裏,我錯了嗎?

感謝,

姆斯瓦蒂

+0

對不起,問題是類似這樣的: http://stackoverflow.com/questions/5976602/error-while-parsing-xml-file-with-stax 由於之前的解析,我正在讀的內容,解析失敗。因爲一旦你閱讀了輸入流,流關閉,解析就沒有什麼可讀的了。 – swati

+0

你真的想從連接讀取*相同的*響應兩次(一次到StringBuild,一次解析)? –

回答

2

對不起,問題是與此類似:Error while parsing XML file with StAx

由於在解析之前,我正在閱讀內容,解析失敗。因爲一旦你閱讀了輸入流,流關閉,解析就沒有什麼可讀的了。

是的埃德,我試圖讀兩次相同的響應。

+0

不錯,給自己拍一張背,接受這個答案;) – Alvin