Ho definito una classe java, ma ho solo bisogno di generare alcuni campi di questa classe in un XML. Il tipo restituito deve essere una stringa. Per prima cosa ho optato per il modo più semplice usando un StringBuffer. Tuttavia, quando ho provato a elaborare la rappresentazione della stringa di output, non è riuscito. Penso che sia più probabile perché ci sono alcuni caratteri che non sono codificati nell'UTF-8 nell'input. Qualcuno potrebbe dirmi qual è il modo migliore per gestirlo? Grazie.Come generare XML (in rappresentazione String) in java
risposta
Dai una prova a XStream.
Citazione:
Creiamo un'istanza di Persona e popolano i suoi campi:
Person joe = new Person("Joe", "Walnes");
joe.setPhone(new PhoneNumber(123, "1234-456"));
joe.setFax(new PhoneNumber(123, "9999-999"));
Ora, per convertirlo in XML, tutto quello che dovete fare è una semplice chiamata a XStream :
String xml = xstream.toXML(joe)
L'XML risultante è simile al seguente:
<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>
E 'così semplice. Guarda come è pulito l'XML.
È possibile utilizzare Java Architecture for XML Binding (o semplicemente JAXB) - con annotazioni dovrebbe essere estremamente facile ed elegante.
Nel caso più semplice, tutto quello che dovete fare, è sufficiente aggiungere @XmlRootElement annotazione il fagiolo che si desidera serializzare in XML
@XmlRootElement
class Foo{
..
}
e Marshall il fagiolo in una stringa formattata
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, Marshaller utilizzerà la codifica UTF-8 durante la generazione di dati XML su java.io.OutputStream o java.io.Writer.
Sono parziale a XOM personalmente, ma ci sono molti buoni strumenti XML di terze parti per Java. Le cose importanti da ricordare sono che 1) scorrere a mano il tuo codice XML con String
o StringBuffer
o simili è il genere di cose che torna sempre a morderti e 2) Le utilità XML integrate di Java sono troppo ingegnerizzate e non tutto piacevole con cui lavorare. (Anche se sono ancora un miglioramento rispetto alla costruzione manuale della stringa XML.) Afferrare un buon pacchetto di terze parti è la strada da percorrere.
- 1. XML per String in Java
- 2. Come analizzare la rappresentazione UTF-8 in String in Java?
- 3. Come creare un oggetto XML da String in Java?
- 4. Map to String in Java
- 5. Deserialize XML String in Classe
- 6. Parsing XML String in C#
- 7. Risorsa online per generare una classe Java dal file XML
- 8. Java: Come convertire qualsiasi oggetto in una rappresentazione String dei dati
- 9. Rappresentazione da UML a XML
- 10. come generare XML dallo schema XML nei dati java e feed in esso?
- 11. String POOL in java
- 12. String in Java
- 13. Come convertire DataInputStream in String in Java?
- 14. JSON String array in Java String lista
- 15. String in Java
- 16. String ... parametro in Java
- 17. String isNullOrEmpty in Java?
- 18. Parsing JavaScript Data string in Java
- 19. C++ 11 rappresentazione std :: string interna (libstdC++)
- 20. 8 caratteri unici String in Java
- 21. Come generare ID univoco in Java (intero)?
- 22. Conversione di oggetti XML in Java
- 23. Come creare una rappresentazione JSON di una classe Java?
- 24. come convertire BigInteger a String in Java
- 25. Come convertire String to Reader in java
- 26. Conversione da JSON a XML in Java
- 27. Come serializzare HashTable <String, String> in XML usando JAXB?
- 28. Converti in rappresentazione Unicode
- 29. In Java, come si estrae una password da un'intestazione HttpServletRequest senza generare un oggetto String?
- 30. Flex String a XML
Oh, mio. Non l'ho mai visto prima, ma è bello da morire. Sto tagliando questo. Molto bella. – BlairHippo
È una biblioteca davvero fantastica, grazie! – yahya