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