[XML/XPath] jaxen : probleme function "parent" de XPath
funxav
Messages postés25Date d'inscriptionvendredi 16 avril 2004StatutMembreDernière intervention30 avril 2005
-
21 juin 2004 à 10:43
funxav
Messages postés25Date d'inscriptionvendredi 16 avril 2004StatutMembreDernière intervention30 avril 2005
-
23 juin 2004 à 14:36
Bonjour
J'ai un probleme avec jaxen pour utiliser la fonction parent de XPath :
Quand j'essaie de faire ça :
il m'affiche bien le premier result, mais après, il me lance l'exception ci dessous :
Exception in thread "main" java.lang.NoSuchMethodError: org.jdom.Element.getParent()Lorg/jdom/Element; at org.jaxen.jdom.DocumentNavigator.getParentAxisIterator(DocumentNavigator.java: 252)
at org.jaxen.expr.iter.IterableParentAxis.iterator(IterableParentAxis.java:82)
at org.jaxen.expr.DefaultStep.axisIterator(DefaultStep.java:139)
at org.jaxen.expr.DefaultLocationPath.evaluate(DefaultLocationPath.java:188)
at org.jaxen.expr.DefaultAbsoluteLocationPath.evaluate(DefaultAbsoluteLocationPat h.java:126)
at org.jaxen.expr.DefaultXPathExpr.asList(DefaultXPathExpr.java:107)
at org.jaxen.BaseXPath.selectNodesForContext(BaseXPath.java:716)
at org.jaxen.BaseXPath.selectNodes(BaseXPath.java:239)
at org.jaxen.BaseXPath.evaluate(BaseXPath.java:196)
at MainTestClass.main(MainTestClass.java:85)
Pourtant, vu que la requete XPath précédente me renvoie des éléments, je suis sur que ce n'est pas un problème d'éléments introuvables.
Finalement, je n'arrive donc pas à utiliser la fonction parent de la syntaxe XPath (soit ça fait une exception, soit ça ne retourne rien)
Est-ce la syntaxe XPath qui ne va pas dans mon expression ?
Peut on faire un /.../.../parent::* ? ou //individu/parent::* ?
funxav
Messages postés25Date d'inscriptionvendredi 16 avril 2004StatutMembreDernière intervention30 avril 2005 23 juin 2004 à 09:56
Non en fait, j'ai trouvé le problème plus précisément :
c'est que JDom inclue le package jaxen.
Or à un moment dans les requêtes XPath, le org.jaxen.jdom.DocumentNavigator que j'ai construit appelle la méthode getParent() d'un objet org.jdom.Element.
Jusque là rien de bien sorcier. Le problème, c'est que la classe org.jdom.Element ne possède pas ou plus de méthode getParent(), donc forcément, comme le DocumentNavigator de jaxen appelle sa méthode qui n'existe pas, ba exception "pas de méthode trouvée". ==> conflit de version ?
Pourtant, ces 2 classes (org.jaxen.jdom.DocumentNavigator) et Element font partie chacune de 2 jars (jdom-b10.jar et jaxen-jdom.jar) qui font partie d'un même fichier zip que j'ai téléchargé sur le net.
Est-ce que quelqu'un sait comment je pourrai m'en sortir ?
funxav
Messages postés25Date d'inscriptionvendredi 16 avril 2004StatutMembreDernière intervention30 avril 2005 23 juin 2004 à 14:36
J'ai regardé sur sun mais j'ai rien trouvé sur JDOM à télécharger. Si tu trouves qqch dis-moi j'ai peut être mal vu ^^.
En fait je serai d'accord avec toi, mais j'ai pris un autre jdom.jar (celui de la version beta 9.0) et depuis ça marche donc je me demande un peu.
Vu qu'apparamment ce sont des beta y a peu être encore des problèmes.
Peut être que je me trompe.
En tout cas, maintenant j'utilise jaxen avec jdom.jar (version 9.0) et ça marche donc ...