[英]Java - How to convert string to xml whitout doc
我需要在服务器中发出获取请求以获取信息。 我要求将此信息保存在xml中,这里的问题是我试图将此答案保留为xml对象。 我找到了很多答案,但只能创建文档,而不仅仅是创建对象(我不得不说不允许我在客户端创建文件)。
我现在有以下代码:
URL url;
String urlForScores = urlToRead+"format=xml";
HttpURLConnection conn = null;
String line;
String result = "";
try {
url = new URL(urlForScores);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/xml");
readerChannel = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
while ((line = readerChannel.readLine()) != null) {
result += line;
}
readerChannel.close();
JAXBContext jc = JAXBContext.newInstance(String.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
StreamSource xmlSource = new StreamSource(new StringReader(result));
JAXBElement<String> je = unmarshaller.unmarshal(xmlSource, String.class);
System.out.println(je.getValue());
} catch (Exception e) {
e.printStackTrace();
}
你能帮我吗 ??
谢谢 !
要使用JAXB编组器,您应该使用JAXB批注。 我确定java.lang.String不会带有任何注释。 您实际上必须基于XML结构对类建模,并使用JAXB批注对其进行批注,然后可以使用JAXB编组器来解组字符串。
在您的示例中使用JAXB要求您构建一个Object结构,该结构与接收到的XML文件中的数据完全相同。 如果您没有用于自动构建JAXB类的XML模式,这可能会变得很复杂。
因此,构建文档要简单得多,并且您无需为此解决方案将任何内容保存到文件中:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder parser = factory.newDocumentBuilder();
Document dc = parser.parse(conn.getInputStream());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.