newfsch
Messages postés6Date d'inscriptiondimanche 4 janvier 2004StatutMembreDernière intervention29 juillet 2008
-
8 avril 2004 à 20:46
hamma2
Messages postés18Date d'inscriptionjeudi 10 septembre 2009StatutMembreDernière intervention 3 décembre 2004
-
3 déc. 2004 à 13:09
Bonjour,
j'utilise JDOM pour traiter des documents XML.
Ma question est la suivante :
Comment se posiitionner ou sélectionner un ou des éléments pas leur nom de balise ou d'attribut dans un arbre JDOM ? Méthodes, classes utilisées ?
sleep
Messages postés68Date d'inscriptionmardi 2 mars 2004StatutMembreDernière intervention10 mai 2007 9 avril 2004 à 09:15
Il y a moults façon de sélectionner un element dans un arbre DOM.
A partir du Document (l'arbre qui represente ton xml), tu peux appeler la méthode - getRootElement() qui va renvoyer un objet Element, correspondant à la racine de cet arbre.
Depuis la classe Element, tu peux appeler les méthodes:
- element (String) : renvoi le premier element fils de ton element dont le nom corresponds a la String passée en paramètre.
- elements (String) : pareil mais revoi tous les elements fils dans une liste.
- attribute (String) : renvoi un objet de type Attribute correspondant au noeud fils attribut de l'element correspondant au nom donné en paramètre
- attributeValue() : renvoi la valeur de l'attribut correspondant au nom donné en paramètre sous la forme d'une String
Apres il existe des methodes bien plus subtiles en passant par les selectNodes et le système de XPath.
Imagine ton arbre DOM comme une arborescence de fichiers, et tout comme il est possible d'acceder a un fichier par son path, il est egalement possible d'atteindre n'importe quel noeud de ton arbre par un path (xpath).
Tous les noeuds de l'arbre, quel que soit leur type (Element, Attribute, meme le Document lui meme...) héritent de l'interface Node, et cette interface possède plusieurs méthodes tres utiles:
- selectNodes(String): la string donné ici corresponds au xpath de l'element, et cette fonction renvoi tous les noeuds correspondant a ce path (contrairement a un systeme de fichier, ici plusieurs noeuds peuvent avoir le meme path) typiquement, un selectNodes("/racine/filsracine") sur le Document representant le fichier suivant:
newfsch
Messages postés6Date d'inscriptiondimanche 4 janvier 2004StatutMembreDernière intervention29 juillet 2008 9 avril 2004 à 09:54
Merci beaucoup de toutes tes indications.
Je vais voir cela.
Peut-être a tu fait une erreur sur le nom de certaines méthodes (Element), tu voulais peut-être indiquer dans le paquage org.jdom :
- Element.getChild(nom_balise) pour obtenir un élement fils
- Element.getChildren(nom_balise) pour obtenir les éléments fils
- Element.getAttribute(nom_attribut) pour obtenir un attribut
- Element.getAttributeValue(nom_attribut) pour obtenir la valeur d'un attribut
J'ai vu également qu'il existe une méthode :
Element.getAttributes() qui permet de renvoyer la liste de tous les attributs d'un élement