J'utilisais jusqu'à présent jdom pour traiter les données xml de mon programme. Devant la taille importante pris par les fichiers de sauvegarde j'ai décidé de me tourner vers StAX.
Je réussis à lire et écrire mes fichiers xml, mais je n'arrive pas à créer des éléments courts lors de la sauvegarde.
Ce code:
donne pour résultat "<coordinate lng="2.1" lat="48.3"></coordinate>".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public void saveXml(XMLEventWriter writer) { XMLEventFactory eventFactory = XMLEventFactory.newInstance(); ArrayList<javax.xml.stream.events.Attribute> attributes = new ArrayList<>(); attributes.add(eventFactory.createAttribute(new QName("lat"), String.valueOf(48.3))); attributes.add(eventFactory.createAttribute(new QName("lng"), String.valueOf(2.1))); StartElement startElement = eventFactory.createStartElement(new QName("coordinate"), attributes.iterator(), null); EndElement endElement = eventFactory.createEndElement(new QName(""), null); try { writer.add(startElement); writer.add(endElement); } catch (XMLStreamException e) { logger.warning("The save may be corrupted."); } }
Je cherche a obtenir : "<coordinate lng="2.1" lat="48.3"/>". ce qui peut représenter un gain non négligeable sur la taille du fichier final.
J'ai regardé du coter de l'XMLEventFactory mais je ne trouve pas de méthode permettant de créer un StartElement ou un EndElement correspondant.
Merci d'avance pour votre aide.
Partager