Проверьте документацию:
https://docs.oracle.com/javase/7/docs/api/org/w3c/dom/Node.html
getNodeValue()
, примененный к узлу элемента, возвращает ноль.
Использование getTextContent()
.
В качестве альтернативы, если вы находите DOM слишком расстраивающим, переключитесь на одну из лучших моделей дерева, такую как JDOM2 или XOM.
Кроме того, если вы используете движок XPath 2.0, такой как Saxon, это (а) упростит ваше выражение до
//*:message-resource//*:code][contains(text(), 'account')]
и (b) позволяют вам возвращать последовательность строк из выражения XPath, а не последовательность узлов, поэтому вам не придется возиться со списками узлов.
Еще один момент: я подозреваю, что предикат [contains(text(), 'account')]
действительно должен быть [.='account']
. Я не уверен в этом, но использование text()
вместо "." И использование contains()
вместо "=" - обе распространенные ошибки.