使用 jdom2 将响应字符串解析为 xml

Parsing response string to xml with jdom2

我想在 SOAP 调用后用 Jdom2 解析我的 StringBuffer。但我没有在任何地方找到解决方案。

我看到了一些使用 w3.jdom 的解决方案,但他们要求我使用 jdom2

HttpResponse response = client.execute(httppost);

BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

StringBuffer result = new StringBuffer();

String line = "";

while ((line = rd.readLine()) != null) {
    result.append(line);

}

创建一个org.jdom2.input.SAXBuilder并使用它的build(Reader)方法创建一个JDOM2 Document对象,其中Reader是使用new StringReader(result.toString())创建的。

但是,将 HTTP 响应中的所有数据复制到 StringBuffer 中以便您随后可以解析它是非常低效的。您已经使用 response.getEntity().getContent()HttpResponse 获得了 InputStream,您可以将此 InputStream 直接提供给 SAXBuilder 的 build(InputStream) 方法。