Problème de filter avec JDOM
Bonjour à tous,
j'ai lu le tuto de Nicolas CYNOBER et ait voulu l'adapter pour mon programme :
voici les imports :
Code:
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:
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:
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 !