Parcours préfixe (en profondeur) d'un document xml

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 214 fois - Téléchargée 20 fois

Contenu du snippet

Après quelques recherches, j'ai vu qu'il n'existait pas de code source du genre à disposition pour parcourir un document xml en passant sur toutes les balises et les attributs.
Donc voici une méthode récursive que j'ai implémenté pour ajouter chaque balise et attribut d'un document XML à un arbre lexical (si la source de l'arbre vous intéresse ...)

Source / Exemple :


private void ajouterDocumentVersArbre(Element racine)
    {
        // Si le noeud courant ne possède pas d'enfants
        if(racine.getChildren().size() == 0)
        {
            // ajout du nom de l'élément
            arbre.ajouter(racine.getName());
            // ajout des attributs de l'élément
            List l = racine.getAttributes();
            if(l.size() > 0)
            {
                Iterator i = l.iterator();
                while(i.hasNext())
                {
                    Attribute att = (Attribute)i.next();
                    arbre.ajouter(att.getName());
                }
            }
        }
        else // le noeud courant possède des enfants
        {
            List list = racine.getChildren();
            Iterator it = list.iterator();
            // on appelle de manière récursive cette méthode
            while(it.hasNext())
            {
                Element elem = (Element)it.next();
                ajouterDocumentVersArbre(elem);
            }
            // ajout du nom du noeud
            arbre.ajouter(racine.getName());
            // ajout des attributs du noeud
            List l = racine.getAttributes();
            if(l.size() > 0)
            {
                Iterator i = l.iterator();
                while(i.hasNext())
                {
                    Attribute att = (Attribute)i.next();
                    arbre.ajouter(att.getName());
                }
            }
        }        
    }

Conclusion :


Voilà, les Objets du DOM utilisés sont ceux du package JDOM, mais on peut très bien les changer.

A voir également

Ajouter un commentaire

Commentaires

cs_loloof64
Messages postés
350
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
6 novembre 2012
-
Bonjour Nadjet24, mon programme permet en effet d'obtenir l'arborescence d'un fichier xml passé en entrée (par contre il faut télécharger la version 6 de Java sur www.sun.com, le jdk6, pour intel386 si tu as un processeur intel ou amd non 64, il y a une section download Java 6 Kit, qqch de ce genre ).
Tu peux faire cela de plusieures manieres
-> mettre les noms qui seront affichés dans les noeuds de l'arbre dans les attributs de tes balises et préciser le mode par attributs
-> mettre les noms qui seront affichés dans les noeuds de l'arbre en noms de balises et préciser le mode par balises
-> mettre les noms qui seront affichés à l'intérieur des balises et préciser le mode par valeurs .
...
http://java.sun.com/javase/downloads/index.jsp => jdk6
et le programme devrait fonctionner si tu précises le jdk 6 sous Eclispe ou Netbeans (je ne sais pas quel IDE tu utilises)
cs_NeoZ
Messages postés
19
Date d'inscription
mercredi 30 avril 2003
Statut
Membre
Dernière intervention
24 avril 2008
-
Bonsoir Nadjet24,
Pour parcourir ton fichier XML, je te conseille plutot de te documenter sur un outil comme JDOM, spécialisé dans ce genre de manipulation.
La source ici sert plutot à faire un parcours préfixe d'un arbre quelconque.
Bon courage !
nadjet24
Messages postés
31
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
8 mai 2008
-
bonjour je souhaite avoir un parseur que j'aurai un fichier xml en entrée et avoir en sortie uen arboressence j'ignore que si ce programme repond à ça.merci votre aide.
samconstantine
Messages postés
1
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
28 novembre 2007
-
j'ai un probleme ,comment integrer une application java à une autre
application par exemple: j'ai un logiciel mais pour l'utiliser il faut
le donne le clé,j'ai realise une application qui genère des clés mais
comment faire relier avec cet logiciel
cs_loloof64
Messages postés
350
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
6 novembre 2012
-
Non , tu as mal compris
Je ne me plainds pas de la réutilistion de mon code (si je le poste, je m'engage à ce qu'il soit librement modifiable), c'est dans le ton de ton message que cela m'est paru exaspérant
--- tu dis que tu as voulu par-là même, "éviter aux autres de télécharger mon code" : si cela n'est pas de la mauvaise pub ...
--- je sais ce qu'est un dictionnaire de la langue française (inutile de me préciser qu'il y a 26 lettres)

Alors j'aurais voulu que tu comprennes que j'avais des raisons d'être exaspéré en lisant ton message .

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.