我通过java代码发送xml请求,并使用以下代码获取xml响应:
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());
并且在parse()中我有reader = 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 :(得分:2)
很抱歉,问题与此类似:Error while parsing XML file with StAx。
因为在解析之前,我正在阅读内容,解析失败了。一旦你读取输入流,流就会关闭,而对于解析,没有什么可读的。
是的Ed,我试图两次阅读相同的回复。