Programmation java avec dom

Signaler
Messages postés
5
Date d'inscription
jeudi 19 mars 2009
Statut
Membre
Dernière intervention
6 juin 2012
-
 Utilisateur anonyme -
salut,
j'ai essayé ce code java pour parcourir mon fichier xml mais le problème qu'il m'affiche pas les nom des attributs et leur valeurs aussi
merci pour l'aide...
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package dom;

/**
*
* @author win
*/
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.SAXException;
public class Dom {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document monDoc = db.parse("annuaire.xml");

Element racine = monDoc.getDocumentElement();
System.out.println(racine.getTagName());
parcours(racine);

} catch (Exception ex) {
ex.printStackTrace();

}

}
public static void parcours(Node n){
NodeList list =n.getChildNodes();
for(int i=0;i<list.getLength();i++){
Node actualNode = list.item(i);
switch(actualNode.getNodeType()){
case Node.ELEMENT_NODE:
System.out.println(actualNode.getNodeName());
parcours(actualNode);
System.out.println(actualNode.getNodeName());
break;
case Node.ATTRIBUTE_NODE:
System.out.println(actualNode.getName()+":""+actualNode.getValue()+"".");
break;
case Node.TEXT_NODE:
System.out.println(actualNode);
break;
}

}
}
}

1 réponse


Salut,

Pour info, utilise la prochaine fois les balises dédiées à l'affichage de code, ce serait grandement lisible avec ça.
Déjà, est-ce que tu es sûr de passer dans un case de ton switch ? Si ça se trouve, tu n'entres dans aucun des cases donc rien n'est affiché.
Sinon il est possible que tu utilises simplement la mauvaise méthode. Comme ça, je dirais que pour afficher des valeurs je mettrais getAttributeValue( ton_attribut ) ou encore getText(). Ce sont des méthodes de la classe Element. Pour info, tu peux aussi jouer avec l'arborescence de ton fichier XML avec par exemple ton_instance_Document.getRoot().getChild() (ou getChildren() selon les cas).

Fait un saut sur l'API pour clarifier tout ça. Et dis nous si tu rentres bien dans un case.

--
Pylouq