He definido una clase de Java, pero solo necesito mostrar algunos de los campos de esta clase en un XML. El tipo devuelto debe ser una Cadena. Primero opté por la forma más fácil usando un StringBuffer. Sin embargo, cuando traté de procesar la representación de Cadena de salida, falló. Creo que es más probable porque hay algunos caracteres que no están codificados en el UTF-8 en la entrada. ¿Podría alguien decirme cuál es la mejor manera de manejar esto? Gracias.Cómo generar XML (en representación de cadena) en java
Respuesta
Dale XStream intentarlo.
Cita:
Vamos a crear una instancia de la persona y pueblan sus campos:
Person joe = new Person("Joe", "Walnes");
joe.setPhone(new PhoneNumber(123, "1234-456"));
joe.setFax(new PhoneNumber(123, "9999-999"));
Ahora, para convertirlo en XML, todo lo que tiene que hacer es hacer una llamada simple a XStream:
String xml = xstream.toXML(joe)
El XML resultante se parece a esto:
<person> <firstname>Joe</firstname> <lastname>Walnes</lastname> <phone> <code>123</code> <number>1234-456</number> </phone> <fax> <code>123</code> <number>9999-999</number> </fax> </person>
Es así de simple. Mira qué limpio está el XML.
Puede usar Java Architecture for XML Binding (o simplemente JAXB) - con las anotaciones debe ser extremadamente fácil y elegante.
En el caso más simple, todo lo que tiene que hacer, es simplemente añadir anotaciones @XmlRootElement al bean desea realizar una serie en XML
@XmlRootElement
class Foo{
..
}
y Marshall el grano en una cadena con formato
StringWriter writer = new StringWriter();
JAXBContext context = JAXBContext.newInstance(Foo.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
m.marshal(individual, writer);
By default, la Marshaller utilizará codificación UTF-8 al generar datos XML a un java.io.OutputStream, o una java.io.Writer.
soy parcial a XOM mí mismo, pero hay un montón de buenas herramientas XML de terceros para Java por ahí. Las cosas importantes a tener en cuenta son que 1) su propio XML con String
o StringBuffer
o similar para liar es el tipo de cosas que siempre vuelve a morder y 2) de utilidades integradas XML son más de la ingeniería y no en Java todo agradable para trabajar. (Aunque siguen siendo una mejora sobre la construcción manual de la cadena XML). Tomar un buen paquete de terceros es el camino a seguir.
- 1. ¿Cómo obtener Locale desde su representación de Cadena en Java?
- 2. Generar cadena de certificados en java
- 3. Convierta una cadena a flujo de entrada XML en java
- 4. analizar una cadena xml en java?
- 5. ¿Debo generar XML como una cadena en C#?
- 6. cómo unescape XML en Java
- 7. cómo generar una cadena única
- 8. Cómo convertir cadena a un archivo XML en Java
- 9. XML para cuerdas en Java
- 10. representación de JSP en una cadena
- 11. ¿Cómo generar Java Enum desde el esquema XML con JAXB?
- 12. Representación de cadena de time_t?
- 13. ¿Cómo puedo fácilmente (en java) generar nombres de archivo a partir de una cadena de máscara?
- 14. ¿Cómo conseguir representación en cadena de valor de enumeración compleja
- 15. cadena Unicode en XML
- 16. ¿Cómo convierto una cadena en una representación en minúsculas?
- 17. cómo generar XML a partir de un esquema XML en Java y datos de fuentes en él?
- 18. Cómo generar una cadena multilínea en Bash?
- 19. ¿Cómo generar efectos de sonido en Java?
- 20. ¿Cómo obtener la representación de Cadena de XmlType?
- 21. ¿Cómo preservar nuevas líneas en CDATA al generar XML?
- 22. Representación de valores monetarios en Java
- 23. ¿Cómo hacer una representación JSON de una clase Java?
- 24. Recurso en línea para generar clases Java a partir del archivo XML
- 25. Usando xsd para generar XML en .net
- 26. Generar documento XML en memoria con JavaScript
- 27. cómo generar documentos XML con espacios de nombres en Python
- 28. Generar esquema XML de la clase Java (o lo contrario)
- 29. Generar salida de formato formateado en Java
- 30. Creación de XML dinámico en Java
Oh, mi. Nunca había visto esto antes, pero es genial como el infierno. Estoy marcando esto. Muy agradable. – BlairHippo
Es una biblioteca genial, ¡gracias! – yahya