Unmarshal XML dans des tableaux
Je veux unmarhal fichier XML dans un tableau d'éléments.
Exemple :
<root>
<animal>
<name>barack</name>
</animal>
<animal>
<name>mitt</name>
</animal>
</root>
Je voudrais un tableau de l'Animal éléments.
Quand j'essaie
JAXBContext jaxb = JAXBContext.newInstance(Root.class);
Unmarshaller jaxbUnmarshaller = jaxb.createUnmarshaller();
Root r = (Root)jaxbUnmarshaller.unmarshal(is);
system.out.println(r.getAnimal.getName());
cet affichage mitt
, le dernier Animal.
Je voudrais faire ceci :
Animal[] a = ....
//OR
ArrayList<Animal> = ...;
Comment puis-je faire svp ?
OriginalL'auteur Olivier J. | 2012-11-01
Vous devez vous connecter pour publier un commentaire.
Vous pouvez effectuer les opérations suivantes:
Racine
Cet exemple serait la même si le champ a été modifié pour
List<Animal>
ouArrayList<Animal>
.Animal
Démo
d'entrée.xml/Sortie
Pour Plus D'Informations
J'ai eu à annoter
Root
aussi avec@XmlAccessorType(XmlAccessType.FIELD)
Merci, j'ai mis à jour ma réponse pour refléter cela.
Je ne pense pas que vous pouvez utiliser @XmlAccessorType(XmlAccessType.CHAMP) avec @XmlElement(name="animal"). Votre cartographie de la même élément deux fois...
Vous ne pouvez pas utiliser
@XmlAccessorType(XmlAccessType.FIELD)
et puis mettre@XmlElement
sur une méthode d'accesseur (get/set), mais aussi longtemps que vous le mettez sur un champ d'une variable d'instance) vous êtes beaux.OriginalL'auteur Blaise Doughan