У меня проблемы с XPath. По какой-то неизвестной причине результат, который я получаю из своего выражения, - результат другого запуска функции.
Вот конструктор моего класса:
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();
}
А вот и XML:
<cellar>
<wine>
<name>Jasnières</name>
</wine>
<wine>
<name>Ballet d'Octobre</name>
</wine>
</cellar>
В вызывающем методе у меня есть другое выражение xpath, которое разбивает документ на список <wine>
элементов. Приведенный выше код вызывается для каждого узла.
В отладчике я проверяю, что при втором запуске узел ndWine
фактически содержит данные из второго узла документа, но оценка всегда возвращает значение Jasnieres
вместо ballet d'octobre
, которое я не могу понять.
Есть идеи о коренной причине?