将Marshall结果转换为String

Sun*_*pta 37 java jaxb

JAXBContext context = JAXBContext
                    .newInstance(CreateExemptionCertificate.class);
            Marshaller m = context.createMarshaller();
            m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);

            m.marshal(cc, System.out);
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我将结果发送到控制台(我的意思是XML正在控制台上打印).我想把这个XML变成一个字符串.我没有得到我应该传递给marshal方法的哪个参数来获取String变量中的XML String而不是在控制台上打印它.任何有任何想法的人请分享.

Rad*_*FID 44

你可以这样做:

    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();
Run Code Online (Sandbox Code Playgroud)


Sun*_*pta 24

刚才我从下面这篇文章得到了我的问题的答案:

我想将输出流转换为String对象

我需要使用StringWriter从Marshal方法中获取XML String


laz*_*laz 5

尝试编组到一个实例,ByteArrayOutputStream然后调用toByteArray它.