DOM4J et les noms des attributs d'un Node (element xml)
1 réponse
Jerome B
Bonjour la liste,
En essayant Dom4J, une api XML , je n'ai pas trouvé comment récupérer les
noms et valeurs des attributs d'un objet Node.
Mon process a été le suivant :
* création d'un objet document à partir d'une chaine contenant du xml
* récupération d'une List de Node via une requête de type XPath
* traitement d'un node
Le problème étant que mes Nodes ont des attributs différents donc, j'ai eu
besoin de savoir quels attributs étaient valorisés.
Le contournement hideux que j'ai mis en place a été de lister les noms
d'attributs dans un attribut toto, récupéré par la commande ???@toto, et
séparés par des pipes | puis de faire un StringTokenizer.
Qqun saurait-il/elle me dire comment récupérer la liste des noms des
attributs d'un élément, que je remplace ce bout de code.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
jnizet
Si les nodes que tu récupères via XPath sont en fait des éléments, il te suffit de faire un cast de ton node sur Element, et d'appeler l'une des innombrables méthodes de cette interface pour obtenir tes attributs:
if (node instanceof Element) { Element element = (Element) node; System.out.println("l'attribut toto a la valeur: " + node.attributeValue("toto")); }
JB.
Si les nodes que tu récupères via XPath sont en fait des éléments,
il te suffit de faire un cast de ton node sur Element, et d'appeler
l'une des innombrables méthodes de cette interface pour obtenir tes
attributs:
if (node instanceof Element) {
Element element = (Element) node;
System.out.println("l'attribut toto a la valeur: " +
node.attributeValue("toto"));
}
Si les nodes que tu récupères via XPath sont en fait des éléments, il te suffit de faire un cast de ton node sur Element, et d'appeler l'une des innombrables méthodes de cette interface pour obtenir tes attributs:
if (node instanceof Element) { Element element = (Element) node; System.out.println("l'attribut toto a la valeur: " + node.attributeValue("toto")); }