Saltar al contenido

Convertir objeto Java en cadena XML

Solución:

Puede utilizar el método de Marshaler para calcular las referencias que toma un Writer como parámetro:

mariscal (Objeto, Escritor)

y pasarle una implementación que puede construir un objeto String

Subclases conocidas directas:
BufferedWriter, CharArrayWriter, FilterWriter, OutputStreamWriter, PipedWriter, PrintWriter, StringWriter

Llame a su método toString para obtener el valor de cadena real.

Así que haciendo:

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

Una opción conveniente es usar javax.xml.bind.JAXB:

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

los [reverse] proceso (unmarshal) sería:

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

No es necesario lidiar con las excepciones marcadas en este enfoque.

Como menciona A4L, puede usar StringWriter. Proporcionando aquí código de ejemplo:

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;
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *