Bonjour,
je cherche à faire un programme qui crée un fichier xml avec DocumentBuilder Transformer, StreamResult et DOMSource. ce fichier doit ensuite être compréssé en zip et envoyé vers une base de donnée (donc le fichier reste sous forme de stream).
Voici la parti du code intéressante avant que je n'essaye de zipper :
Cela fonctionne et donne la sortie suivante dans le logcat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer = factory.newTransformer(); transformer.setOutputProperties(outFormat); OutputStream output = new ByteArrayOutputStream(); DOMSource domSource = new DOMSource(document.getDocumentElement()); StreamResult result = new StreamResult(output); transformer.transform(domSource, result); Log.i("xml : ", output.toString());
Maintenant avec le zip :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?xml version="1.0" encoding="UTF-8"?><catalog journal="Oracle Magazine" publisher="Oracle Publishing"> 3680 xml : I <article> 3680 xml : I <edition>Sept-Oct 2005</edition> 3680 xml : I <title>Creating Search Pages</title> 3680 xml : I <author>Steve Muench</author> 3680 xml : I </article> 3680 xml : I <article> 3680 xml : I <edition>November - December 2010</edition> 3680 xml : I <title>Agile Enterprise Architecture</title> 3680 xml : I <author>Bob Rhubart</author> 3680 xml : I </article> 3680 xml : I </catalog>
La sortie donne ça quelque soit le xml : "PK½ï¿½ï¿½ï¿½ï����content"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 TransformerFactory factory = TransformerFactory.newInstance(); transformer.setOutputProperties(outFormat); OutputStream output = new ByteArrayOutputStream(); ZipOutputStream lZipOut = new ZipOutputStream(output); ZipEntry lEntry = new ZipEntry("content"); lZipOut.putNextEntry(lEntry); DOMSource domSource = new DOMSource(document.getDocumentElement()); StreamResult result = new StreamResult(lZipOut); transformer.transform(domSource, result); Log.i("xml : ", output.toString());
C'est donc faux...
Comment dois-je faire pour zipper le stream dans mon cas? et comment vérifier que le zip obtenu est correct ?
Partager