IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Format d'échange (XML, JSON...) Java Discussion :

Transformer un fichier XML en une list [JDOM]


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 540
    Points : 532
    Points
    532
    Par défaut Transformer un fichier XML en une list
    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 :

    Code xml : 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
    <?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.

    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
    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.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class Panel {
     
     
    public Panel () {
     
    }
    }
    Merci de votre aide

  2. #2
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    Avant de te lancer là-dedans, as-tu cherché si des projets existants sur le net ne pouvait pas faire l'affaire?
    Il me semble qu'il y a déjà plusieurs libs et api qui font ce que tu demandes en plus complet.

    Quelques sorties de google :
    http://cookxml.yuanheng.org/cookswing/
    http://jfcml.sourceforge.net/
    http://www.swixml.org/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 15/07/2008, 11h00
  2. [XSL] comment transformer ce fichier xml en une table html ?
    Par jlassira dans le forum XSL/XSLT/XPATH
    Réponses: 17
    Dernier message: 15/03/2006, 12h15
  3. Intégration des fichier XML dans une base de données MySQL
    Par bebemoundjou dans le forum XQUERY/SGBD
    Réponses: 8
    Dernier message: 25/11/2005, 22h41
  4. [DOM] Créer un fichier XML sous une forme bien précise
    Par LaseLiep dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 09/06/2005, 18h05
  5. Réponses: 3
    Dernier message: 13/12/2004, 13h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo