JAXBContext context = JAXBContext
.newInstance(CreateExemptionCertificate.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
m.marshal(cc, System.out);
在上面的代码中,我将结果发送到控制台(我的意思是在控制台上打印XML)。我想把这个XML变成一个字符串。我没有得到我应该传递给marshal方法的哪个参数来获取String变量中的XML String而不是在控制台上打印它。任何有任何想法的人请分享。
答案 0 :(得分:34)
你可以这样做:
CreateExemptionCertificate cc = ...;
JAXBContext context = JAXBContext.newInstance(CreateExemptionCertificate.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
StringWriter sw = new StringWriter();
m.marshal(cc, sw);
String result = sw.toString();
答案 1 :(得分:24)
刚才我从以下这篇文章中得到了我的问题的答案:
I want to convert an output stream into String object
我需要使用StringWriter从Marshal方法中获取XML String
答案 2 :(得分:5)
尝试编组到ByteArrayOutputStream
的实例,然后在其上调用toByteArray
。