Bonjour à tous,
j'ai lu le tuto de Nicolas CYNOBER et ait voulu l'adapter pour mon programme :
voici les imports :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.filter.*;
import org.xml.sax.*;
import java.util.*;
je récupère un Stream XML et j'ai son DTD. Je peux le parser sans problème.
Je voudrais le filtrer pour garder seulement les parties interressantes. Je crée donc un filtre et je l'utilise (c'est quasiment un copié/collé du tuto) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Filter filtre = new Filter()
			   {
					static final long serialVersionUID = 556789746;
			      //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;
 
			         //On crée deux variables qui vont nous permettre de vérifier
			         //les conditions de nom et de prenom
			         boolean verifNomCNX = true;
			         boolean verifTypeCNX = false;
 
			         //2 ème vérification: on vérifie que le nom est bien "CynO"
			         if(element.getChild("Connection").getAttributeValue("Type").matches( "P2P|TLS|CES"))
			         {
			            verifTypeCNX = true;
			         }
			         //3 ème vérification: on vérifie que CynO possède un prenom "Laurent"
			         //On commence par vérifier que la personne possède un prenom,
			         //en effet notre fichier XML possède des étudiants sans prénom !
 
			         if(element.getChild("Connection").getAttributeValue("Description").matches("(?i)VV[0-9]{6}_" + nom)) {
			        	 verifNomCNX = true;
			         }
 
			         //Si nos conditions sont remplies on retourne true, false sinon
			         if(verifNomCNX && verifTypeCNX)
			         {
			            return true;
			         }
			         return false;
			      }
			   };//Fin du filtre
 
			   List resultat = racine.getContent(filtre);
à l'execution, j'ai
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Exception in thread "main" java.lang.NoSuchMethodError: org.jdom.Element.getContent(Lorg/jdom/filter/Filter;)Ljava/util/List;
qui arrive sur cette dernière ligne...
Une idée du pourquoi ?

merci d'avance !