J'ai des problèmes avec XPath. Pour une raison inconnue, le résultat que je reçois de mon expression est celui d'une autre exécution de la fonction.Xpath renvoyant la valeur du mauvais noeud
Voici le constructeur de ma classe:
Wine(Node ndWine){
try{
xpath = XPathFactory.newInstance().newXPath();
}
catch(Exception e)
{}
Node ndName = null;
try{
ndName = (Node)xpath.evaluate("//name", ndWine, XPathConstants.NODE);
}
catch(Exception e)
{}
if (ndName != null)
name = ndName.getTextContent();
}
Et voici le XML:
<cellar>
<wine>
<name>Jasnières</name>
</wine>
<wine>
<name>Ballet d'Octobre</name>
</wine>
</cellar>
Dans la méthode d'appel que j'ai une autre expression XPath qui décompose le document à la liste des <wine>
éléments . Le code ci-dessus est appelé pour chaque noeud.
Dans le débogueur, je vérifie qu'à la deuxième exécution, le nœud ndWine
contient réellement des données du deuxième nœud du document, mais l'évaluation renvoie toujours la valeur Jasnieres
au lieu de ballet d'octobre
, ce que je ne comprends pas.
Une idée de la cause première?
Merci, ce qu'il fait! Je n'étais pas au courant que même si la source de l'évaluation XPath est un nœud spécifique, elle va quand même parcourir tout le document. – Antoine