Bonjour,

J'ai un petit soucis avec le parsing XStream (version 1.2).

J'ai besoin de parser une collection non englobée. Je m'explique...

Par exemple j'ai le fichier suivant :
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
<classe>
	<niveau>CM1</niveau>
	<eleve>
		<nom>DUPONT</nom>
		<prenom>Romain</prenom>
	</eleve>
	<eleve>
		<nom>SIMPSON</nom>
		<prenom>Lisa</prenom>
	</eleve>
</classe>

Et la classe Classe suivante :
Code Java : 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
import java.util.Set;
import com.thoughtworks.xstream.annotations.XStreamAlias;
 
@XStreamAlias("classe")
public class Classe {
	@XStreamAlias("niveau")
	private String niveau;
 
	@XStreamAlias("")
	private Set<Eleve> eleves;
 
	public String getNiveau() {
		return niveau;
	}
 
	public void setNiveau(String niveau) {
		this.niveau = niveau;
	}
 
	public Set<Eleve> getEleves() {
		return eleves;
	}
 
	public void setEleves(Set<Eleve> eleves) {
		this.eleves = eleves;
	}
}

Ainsi que la classe Eleve :
Code Java : 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
import java.util.Set;
import com.thoughtworks.xstream.annotations.XStreamAlias;
 
@XStreamAlias("eleve")
public class Classe {
	@XStreamAlias("nom")
	private String nom;
 
	@XStreamAlias("prenom")
	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;
	}
}

Et voici l'opération de désérialisation :
Code Java : 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
try {
	// Instanciation de la classe XStream
	XStream xstream = new XStream(new DomDriver());
 
	// Redirection du fichier vers un flux d'entrée fichier
	InputStream in = new FileInputStream(new File(fichier));
 
	try {
		// A partir de XStream 1.3, il faut utiliser :
		// xstream.processAnnotations(Classe.class);
		// Avant XStream 1.3, il faut utiliser :
		Annotations.configureAliases(xstream, Classe.class);
 
		// Désérialisation du fichier vers un nouvel objet
		Classe classe = (Classe) xstream.fromXML(in);
 
		// Traitement classe...
	}
	finally {
		// On s'assure de fermer le flux quoi qu'il arrive
		in.close();
	}
}
catch (FileNotFoundException e) {
	e.printStackTrace();
}
	catch (IOException e) {
	e.printStackTrace();
}

Mais je n'arrive pas à parser la collection sans englober les élèves dans une autre balise, comme ceci par exemple :
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<classe>
	<niveau>CM1</niveau>
	<eleves>
		<eleve>
			<nom>DUPONT</nom>
			<prenom>Romain</prenom>
		</eleve>
		<eleve>
			<nom>SIMPSON</nom>
			<prenom>Lisa</prenom>
		</eleve>
	</eleves>
</classe>

Ce que je ne veux pas faire Une idée ?