Tom's Guide > Forum > Programmation > Transformer un XML en une List java

Transformer un XML en une List java

Forum Programmation : Transformer un XML en une List java

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour, mon but est de créer une liste contenant des objet panel ayant des attributs et une liste l'objet sur le panel. L'objet peut être un bouton, un texte, un graphique, bref n'importe quoi. Il peut y avoir au plus 10 éléments dans le panel.
Tout d'abord, pour que le logiciel soit éditable par n'importe qui, il va se construire en lisant un fichier XML. Le voici :

<?xml version="1.0" encoding="UTF-8"?>
<application>
<panel>
<panelId>1</panelId> <!--nom-->
<sizeH>200</sizeH>
<sizeV>320</sizeV>
<panelBackgroundR>11</panelBackgroundR>
<panelBackgroundG>75</panelBackgroundG>
<panelBackgroundB>200</panelBackgroundB><!--system RGB-->
<panelIcon>pictures/set.gif</panelIcon>
<text>
<textFont>"Serif"</textFont>
<textSize>10</textSize>
<textBoxHPos>63</textBoxHPos>
<textBoxVPos>52</textBoxVPos>
<textColorR>255</textColorR>
<textColorG>255</textColorG>
<textColorB>255</textColorB>
<textsentence>Tjay Tjiook</textsentence>
</text>
</panel>
</application>


Ensuite, j'ai une classe qui va lire le fichier XML pour créer les objets. J'en suis là. J'ai une erreur dans cette classe car je ne peux pas ajouter d'objet Panel à ma liste. Je n'arrive pas à corriger cette erreur.

public class XMLReader {

private org.jdom.Document document;
private Element root;
private Element current;
private List<Object> listElement = new ArrayList<Object>();
private SAXBuilder sbx;
public XMLReader () throws JDOMException {
this.sbx = new SAXBuilder();
try {
this.document = sbx.build(new File("configuration.xml" ));
} catch (IOException ex) {
Logger.getLogger(XMLReader.class.getName()).log(Level.SEVERE, null, ex);
}

}

public List<Panel> getListPanel (String fille) {

List<Panel> listPanel = new ArrayList();//la liste des panel que l'on va retourner. Pour l'instant elle est vide !!!
Element mere = document.getRootElement();
listPanel = mere.getChildren(fille);//la liste contient tous les noeuds dont le nom est de type panel
Iterator itr = listPanel.iterator();//on créé un itérateur sur notre liste
while (itr.hasNext()) {
Element current = (Element) itr.next();//on recrée un élément courrant a chaque tour de boucle afin de pouvoir utiliser les methodes propores
//au éléments comme selectionner un noeud fils
Panel unPanel = new Panel();
listPanel.add(unPanel);
}
System.out.println(listPanel);
return listPanel;

}
}

Je vous passe aussi la classe Panel. Pour l'instant elle est toute simple, pas d'attribut ni rien, je les ajouterais par la suite.


public class Panel {


public Panel () {

}
}
Merci de votre aide

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

J'ai trouvé l'erreur mais je ne comprends pas pourquoi ça la fait.
En fait lorsque j'ajoute à ma liste un objet Panel, le constructeur ne renvoie pas l'objet mais son adresse.
Lorsque je fais un System.out.println(new Panel()); j'ai en résultat Panel@15e3f.
Pourquoi j'ai ça ?
Je croyais que les adresses n'étaient pas gérées par java.

Répondre à Brice_Zai

Tout objet Java est référencé, donc ça crée toujours des pointeur, même si tu ne le vois pas.
Si Panel est une de tes classes, il te faut surcharger la méthode toString(), provenant de Object.

------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Tom's Guide > Forum > Programmation > Transformer un XML en une List java
Aller à :

Il y a 374 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens