Convert Java object to XML string Convert Java object to XML string xml xml

Convert Java object to XML string


You can use the Marshaler's method for marshaling which takes a Writer as parameter:

marshal(Object,Writer)

and pass it an Implementation which can build a String object

Direct Known Subclasses: BufferedWriter, CharArrayWriter, FilterWriter, OutputStreamWriter, PipedWriter, PrintWriter, StringWriter

Call its toString method to get the actual String value.

So doing:

StringWriter sw = new StringWriter();jaxbMarshaller.marshal(customer, sw);String xmlString = sw.toString();


A convenient option is to use javax.xml.bind.JAXB:

StringWriter sw = new StringWriter();JAXB.marshal(customer, sw);String xmlString = sw.toString();

The [reverse] process (unmarshal) would be:

Customer customer = JAXB.unmarshal(new StringReader(xmlString), Customer.class);

No need to deal with checked exceptions in this approach.


As A4L mentioning, you can use StringWriter. Providing here example code:

private static String jaxbObjectToXML(Customer customer) {    String xmlString = "";    try {        JAXBContext context = JAXBContext.newInstance(Customer.class);        Marshaller m = context.createMarshaller();        m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); // To format XML        StringWriter sw = new StringWriter();        m.marshal(customer, sw);        xmlString = sw.toString();    } catch (JAXBException e) {        e.printStackTrace();    }    return xmlString;}