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 :

Afficher les elements d'un fichier xml sur une interface [DOM]


Sujet :

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

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Points : 67
    Points
    67
    Par défaut Afficher les elements d'un fichier xml sur une interface
    Bonjour tt monde,

    Je vien de lire les elements d'un fichier xml et j'aimerais poster le contenu de leurs attributs sur des itmes (boutton,itemMenu ect...)

    Voila le code avec le quel j'ai lu mes elements mais je ne trouve pas comment affcter à chaque attribue lu (par Dom) un item qui s'affichera sur mon interface .

    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
     
     
       try{ 
              // création d'une fabrique de documents 
              DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance(); 
              // création d'un constructeur de documents 
              DocumentBuilder constructeur = fabrique.newDocumentBuilder(); 
              // lecture du contenu d'un fichier XML avec DOM 
              File xml = new File("C:\\xml\\voitures.xsd" ); 
              Document document = constructeur.parse(xml); 
               Element racine = document.getDocumentElement();
     
              //System.out.println("Voici le nom de la racine : "+racine.getTagName()); 
     
          NodeList nl = racine.getElementsByTagName("xs:moteur");
     
        for (int i = 1; i < nl.getLength(); ++i) {
           Element lilo = (Element) nl.item(i);
           //System.out.println(lilo.getTagName());
           // System.out.println(lilo.getAttribute("name"));
     
        }

    Merci.

  2. #2
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Bonjour

    Pourrais tu etre plus precis? Tu souhaiterais afficher une interface Swing qui correspondrait a ton fichier XML (plutot schema XML d'apres ton exemple).

    Tu veux en fair quoi ensuite?

    Angelo

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par azerr Voir le message
    Bonjour

    Pourrais tu etre plus precis? Tu souhaiterais afficher une interface Swing qui correspondrait a ton fichier XML (plutot schema XML d'apres ton exemple).

    Tu veux en fair quoi ensuite?

    Angelo
    Oui il s'agit bien d'un schema XML j'ai cetrains element de mon arbre et j'amerais afficher qlq attributs qui correspondent à ces element c tt.

    Donc c 'une interface graphique que je developpe avec swing et qui va m'afficher les diffrents attributes de mes elements c tt dans le code que j'ai deja poster je donne l'exemple ou je lit tt les attributs "name" de l'element moteur et j'amerais afficher ces attributs apres les avoir lu avec la methode(getAttribut) le traitement qui suis n'a pas d'importance pour l'instint je cherche just un moyen de les afficher sur des button par exemple.

  4. #4
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Ok,

    si j'ai bien compris tu veux afficher une interface Swing a partir d'un fichier XML.
    Par exemple tu as un fichier XML comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <voiture>
        <moteur name="bla bla bla">
     
        </moteur>
    </voiture>
    Et tu veux ensuite affiche une interface Swing qui a un JTextField qui affiche bla bla bla.

    Si c'est ca et que tu as du temps je pourrais te proposer TK-UI le projet sur lesqule je suis en train de bosser et ou tu peux decrire des interfaces en XML (XUL, XHTML....) et les rendre en Swing ou SWT.

    Donc par exemplke pour gerer ton cas avec TK-UI tu pourrais ecrire une XSL qui transforme ton fichier XML en une description XHTML et ensuite passer cette description a TK-UI pour afficher ton interface en Swing.

    Mais malheursement pour l'instant il n'y a pas encore de release de TK-UI.

    Angelo

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Points : 67
    Points
    67
    Par défaut
    wé c'est ça le but afficher le "bla bla" ,en fait j'avais cru que c'etait un truc simple sur le quel je passerais vite fait mais je me renconte que j'y suis bloqué pr l'instint parceque j'ai enormement d'attribut (plusieurs fichier xsd qui m'attendent) mais bon j'ai fait qlqs recherche et j'aboutit un autres code mais ça ne repond tjs pas voila je te le propose si jamais tu a klk remarque.Merci pr ton aide .

    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
     
     
     
          NodeList nl = racine.getElementsByTagName("xs:moteur");
     
     
        for (int i = 1; i < nl.getLength(); ++i) {
           Element lilo = (Element) nl.item(i);
     
           String l=lilo.getAttribute("name");
           buttons[i].setText(l);
     
            jPanel1.add(buttons[i]);
     
            buttons[i].setVisible(true);
     
     
     
        }

    Ici j'esseye de mettre le contenue de l'attribut comme tu peut le constater sur des button .

  6. #6
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    J ene peux pas t'aider si tu n eme mets pas tout ton code Jav aet ton exemple de fichier XML.

    Je voies ton idee, mais ca ne sera pas tres generique.

    Angelo

  7. #7
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Points : 67
    Points
    67
    Par défaut
    Supposons le fichier XML suivant (pas besoin des xsd pr l'instint):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    <voiture>
           <moteur name"v6"/>
           <moteur name"v8"/>
           <moteur name"v12"/>
    <voiture/>
    Ce que je voit c une interface avec trois boutons sur chaque boutton il aura ecrit les names (bouton1:v6, bouton2: v8, bouton3:v12)

    Et voila le code sur le quel je travail:

    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
     
     
     
     public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new test().setVisible(true);
     
                     try{ 
              // création d'une fabrique de documents 
              DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance(); 
              // création d'un constructeur de documents 
              DocumentBuilder constructeur = fabrique.newDocumentBuilder(); 
              // lecture du contenu d'un fichier XML avec DOM 
              File xml = new File("C:\\xml\\voitures.xsd" ); 
              Document document = constructeur.parse(xml); 
               Element racine = document.getDocumentElement();
     
              //System.out.println("Voici le nom de la racine : "+racine.getTagName()); 
     
          NodeList nl = racine.getElementsByTagName("moteur");
     
            JButton[] buttons;
     
        for (int i = 1; i < nl.getLength(); ++i) {
           Element lilo = (Element) nl.item(i);
     
           JButton[] buttons;
     
          buttons[i].setTexT(getAttribute("name"));   
     
        }
    Voila.

  8. #8
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Bonsoir,

    tout d'abor ton ex de fichier XML n'est pas valide, voici un contenu XML valide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <voiture>      
        <moteur name="v6"/>
        <moteur name="v8"/>       
        <moteur name="v12"/>       
    </voiture>
    Ensuite il manque des morceaux de code donc j'ai refait un exemple le voici :

    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
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
     
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.NodeList;
     
    public class XMLToSwing {
     
    	public static void main(String[] args) {
    		try {
    			JFrame frame = new JFrame();
    			frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    			JPanel panel = new JPanel();
    			frame.getContentPane().add(panel);
     
    			// création d'une fabrique de documents
    			DocumentBuilderFactory fabrique = DocumentBuilderFactory
    					.newInstance();
    			// création d'un constructeur de documents
    			DocumentBuilder constructeur = fabrique.newDocumentBuilder();
     // lecture du contenu d'un fichier XML avec DOM 
              File xml = new File("C:\\xml\\voitures.xsd" ); 
              Document document = constructeur.parse(xml); 
    			Element racine = document.getDocumentElement();
    			NodeList nl = racine.getElementsByTagName("moteur");
    			for (int i = 0; i < nl.getLength(); ++i) {
    				Element lilo = (Element) nl.item(i);
     
    				JButton button = new JButton();
    				button.setText(lilo.getAttribute("name"));
    				panel.add(button);
    			}
     
    			frame.pack();
    			frame.setVisible(true);
     
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    }
    qui t'affiche 3 boutons.

    Angelo

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

Discussions similaires

  1. Afficher le contenu d'un fichier xml sur une page web
    Par pitchu dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 26/02/2015, 16h03
  2. [XML] Récupérer les données d'un fichier XML sur URL avec php
    Par ValooWart dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 01/03/2013, 16h40
  3. affiché les attributs d'un fichier xml dans un treeview
    Par knuj0 dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 23/09/2010, 08h05
  4. Réponses: 3
    Dernier message: 20/05/2009, 09h12

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