Quiero convertir un OutputStream
en un objeto String
. Tengo un objeto OutputStream
devuelto después de ordenar el objeto JAXB.Quiero convertir una secuencia de salida en el objeto String
Respuesta
muy familiarizado con jaxb, de lo que era capaz de encontrar se puede convertir en una cadena utilizando
public String asString(JAXBContext pContext,
Object pObject)
throws
JAXBException {
java.io.StringWriter sw = new StringWriter();
Marshaller marshaller = pContext.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
marshaller.marshal(pObject, sw);
return sw.toString();
}
pero no estoy seguro acerca de un objeto stirng. sigue buscando.
** EDITAR
Marshalling un elemento no
Otro caso de uso común es donde tiene un objeto que no tiene @XmlRootElement en él. JAXB le a Mariscal de esta manera:
marshaller.marshal (nueva JAXBElement (
nueva QName ("", "distintivo de directorio raíz"), Point.class, nuevo Point (...)));Esto coloca el elemento como el elemento raíz , seguido del contenido del objeto, luego. Usted realmente puede usarlo con una clase que tiene @XmlRootElement, y que simplemente cambia el nombre del nombre del elemento raíz.
A primera vista, el segundo parámetro Point.class puede parecer redundante , pero en realidad es necesario para determinar si el contador de referencias se productos (infame) @xsi: tipo. En este ejemplo , tanto la clase como la instancia son Point, por lo que no verá @xsi: type. Pero si son diferentes, lo verá.
Esto también se puede usar para ordenar un objeto simple , como String o un número entero .
marshaller.marshal (nuevo JAXBElement (
nuevo QName ("", "distintivo de directorio raíz"), String.class, "foo bar"));Pero por desgracia, no se puede utilizar para objetos como mariscal de lista o mapa, como no se manejan como la primera clase los ciudadanos del mundo JAXB.
encontró HERE
public String readFile(String pathname) throws IOException {
File file = new File(pathname);
StringBuilder fileContents = new StringBuilder((int) file.length());
Scanner scanner = new Scanner(file);
String lineSeparator = System.getProperty("line.separator");
try {
while (scanner.hasNextLine()) {
fileContents.append(scanner.nextLine() + lineSeparator);
}
return fileContents.toString();
}
finally {
scanner.close();
}
}
Método para manejar el XML y convertirlo en una cadena.
JAXBContext jc = JAXBContext.newInstance(ClassMatchingStartofXMLTags.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
//store filepath to be used
String filePath = "YourXMLFile.xml";
File xmlFile = new File(filePath);
//Set up xml Marshaller
ClassMatchingStartofXMLTags xmlMarshaller = (ClassMatchingStartofXMLTags) unmarshaller.unmarshal(xmlFileEdit);
Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
// Use marshall to output the contents of the xml file
System.out.println("Marshalled XML\n");
marshaller.marshal(xmlMarshaller, System.out);
//Use Readfile method to convert the XML to a string and output the results
System.out.println("\nXML to String");
String strFile = ReadFile(xmlFile)
System.out.println(strFile);
método dentro de la clase para obtener el código XML y Marshall se Edición El método anterior ambas se mostrarán el xml movilizados y también el XML como una cadena.
Esto es extremadamente intrincado, y no es claro o adecuado Java. El autor original no necesariamente tiene un archivo XML en la mano; la pregunta se refiere a un OutputStream. –
StringWriter sw = new StringWriter();
com.integra.xml.Integracao integracao = new Integracao();
integracao.add(...);
try {
JAXBContext context = JAXBContext.newInstance("com.integra.xml");
Marshaller marshaller = context.createMarshaller();
marshaller.marshal(integracao, sw);
System.out.println(sw.toString());
} catch (JAXBException e) {
e.printStackTrace();
}
enfoque más limpio hasta el momento – xyz
Sí, hay una manera de hacerlo: simplemente pase el escritor de cadenas como entrada. Para que se escriba el xml creado
public void saveSettings() throws IOException {
FileOutputStream os = null;
//Declare a StringWriter to which the output has to go
StringWriter sw = new StringWriter();
try {
Answer ans1=new Answer(101,"java is a programming language","ravi");
Answer ans2=new Answer(102,"java is a platform","john");
ArrayList<Answer> list=new ArrayList<Answer>();
list.add(ans1);
list.add(ans2);
settings=new Question(1,"What is java?",list);
os = new FileOutputStream(FILE_NAME);
this.marshaller.marshal(settings, new StreamResult(sw));
System.out.println(sw.toString());
new File(FILE_NAME).delete();
} finally {
if (os != null) {
os.close();
}
}
}
- 1. Quiero convertir std :: string en un const wchar_t *
- 2. Quiero crear una secuencia de comandos de una aplicación C#
- 3. Cómo convertir String a DOM ¿Objeto de documento en Java?
- 4. Cómo convertir el objeto [] a la lista <string> en una línea de C# 3.0?
- 5. En scala, ¿cómo convertir los valores del objeto en Map [String, String]?
- 6. Casting vs Convertir un objeto a String, cuando objeto realmente es una cadena
- 7. Convertir GMT DateTime String
- 8. Cómo convertir System :: String^en std :: string?
- 9. Quiero invocar el método Object hashCode a través del objeto String. ¿Cómo hacerlo?
- 10. Escribir cadena en la secuencia de salida
- 11. Convertir DateTime a String PHP
- 12. Java: ¿Cómo convertir un objeto File a un objeto String en java?
- 13. Convertir std :: string en QString
- 14. ¿Cómo puedo leer una secuencia de salida HttpServletReponses?
- 15. Convertir Java String en sql.Timestamp
- 16. Necesita convertir String^en char *
- 17. Cómo convertir un objeto String a Boolean Object?
- 18. Convertir System.Array a string []
- 19. Cómo convertir clases en Dictionary <string, string>?
- 20. Cómo convertir un objeto similar a un iterador java en una secuencia de clojure
- 21. secuencia contiene ningún error elementos pero quiero comprobar NULL
- 22. Cómo convertir una HttpServletRequest a String?
- 23. Java - Convertir cadena en objeto URI válido
- 24. Convertir bytes ASCII [] a String
- 25. Cómo convertir String to Reader en Java
- 26. convertir una cadena en javascript objeto
- 27. Quiero reemplazar una Cadena completa con un nuevo valor utilizando el método String replaceAll en Java
- 28. ¿Cómo convertir una cadena a secuencia de caracteres?
- 29. ¿Por qué no puedo convertir un objeto (que en realidad es el objeto []) en una cadena []?
- 30. cómo convertir el objeto a cadena en java
Simplemente haciendo una nota aquí que el enfoque StringWriter funciona. ¡Gracias! – eis