Bonjour,
Je souhaite sérialiser et de-sérialiser en xml une hastable qui est un conteneur d'objet java.
Pour l'instant j'ai réussi a mettre en œuvre grâce a la bibliothèque XStream la
sérialisation de l'instance d'objet simple et leurs dé-sérialisation mais dès que je souhaite sérialiser un conteneurs d'objet quelconque j'obtiens un fichier xml incomplet et inexploitable.
Je me suis alors poser la question si il ne s’agissait pas d'un problème avec les DTD créer automatiquement par la bibliothèque XStream et savoir si il exister d'autre solutions malheuresement je n'aie rien trouvé de concluant donc j'en appelle a votre aide.
Donc voici l'objet sérialiser
et voici le programme qui sérialise
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
22
23
24
25
26
27
28
29
30
31
32
33
34 package Personne; import java.io.*; public class Personne { private String nom; private String prenom; public String getNom() { return nom; } public void setNom(String nom) { this.nom = nom; } public String getPrenom() { return prenom; } public void setPrenom(String prenom) { this.prenom = prenom; } public String toString() { return this.nom + " " + this.prenom; } }
et voici une partis de la documentation que j'ai utilisé
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 import java.util.*; import java.io.*; import Personne.Personne; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; public class TestHashtable { public static void main(String[] args) { //String toto; XStream xstream = new XStream(new DomDriver()); Personne p1 = new Personne(); Personne p2 = new Personne(); p1.setNom("1"); p1.setPrenom("10"); p2.setNom("2"); p2.setPrenom("20"); Hashtable htable = new Hashtable(); htable.put(new Integer(3), new Integer(30)); htable.put(new Integer(1), new Integer(10)); htable.put(new Integer(2), new Integer(20)); //toto = htable.get(new Integer(2)); System.out.println(htable.get(new Integer(2))); Hashtable htableP = new Hashtable(); htable.put(p1.getNom(),p1.getPrenom()); htable.put(p2.getNom(),p2.getPrenom()); //toto = htable.get(new Integer(2)); System.out.println(htable.get("1")); try { FileOutputStream fout = new FileOutputStream("personne2.xml"); xstream.toXML(htableP, fout); //xstream.toXML(p2, fout); } catch (FileNotFoundException e) { e.printStackTrace(); } } }
http://ericreboisson.developpez.com/...a/xml/xstream/
En vous remerciant d'avance pour vos idées!
Partager