package robot3; import java.io.File; import java.util.Iterator; import java.util.List; import org.jdom.Element; import org.jdom.filter.Filter; import org.jdom.input.SAXBuilder; public class Cherche_fils { static org.jdom.Document document; static Element racine; public static void main(String[] args) { //On crée une instance de SAXBuilder SAXBuilder sxb = new SAXBuilder(); try { //On crée un nouveau document JDOM avec en argument le fichier XML //Le parsing est terminé ;) document = sxb.build(new File("Toutes_aretes.xml")); } catch(Exception e){} //On initialise un nouvel élément racine avec l'élément racine du document. racine = document.getRootElement(); afficheFiltre("1"); } static void afficheFiltre(final String id) { //On crée un nouveau filtre Filter filtre = new Filter() { /** * */ private static final long serialVersionUID = 1L; //On défini les propriétés du filtre à l'aide //de la méthode matches public boolean matches(Object ob) { //1 ère vérification : on vérifie que les objets //qui seront filtrés sont bien des Elements if(!(ob instanceof Element)){return false;} //On crée alors un Element sur lequel on va faire les //vérifications suivantes. Element element = (Element)ob; boolean verifAr = false; // on selectionne les fils de l'id if(element.getChild("sfils").getAttribute("fils").getValue().equals(id)) verifAr= true; return verifAr; } };//Fin du filtre //getContent va utiliser notre filtre pour créer une liste de sommet répondant //à nos critères. List resultat = racine.getContent(filtre); //On affiche enfin l'attribut sommet de tous les éléments de notre list Iterator i = resultat.iterator(); while(i.hasNext()) { Element courant = (Element)i.next(); System.out.println(courant.getChild("sfils").getChild("val").getText()); } } }