使用 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)
方法。
我想在 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)
方法。