使用STAX从URL解析xml响应

时间:2011-07-05 09:45:53

标签: java xml url stax

我通过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)

有人可以告诉我我在哪里错了吗?

谢谢,

斯瓦特

1 个答案:

答案 0 :(得分:2)

很抱歉,问题与此类似:Error while parsing XML file with StAx

因为在解析之前,我正在阅读内容,解析失败了。一旦你读取输入流,流就会关闭,而对于解析,没有什么可读的。

是的Ed,我试图两次阅读相同的回复。