Как извлечь данные из тэга xml?

Имеется такой xml файл: как быстро и просто извлечь в String значение поля value в указанном тэге (production:operationBO). Заранее благодарю! введите сюда описание изображения

Вот мое решение (не работает):

XPath xPath = XPathFactory.newInstance().newXPath();
        String data =
                xPath.evaluate(
                        "//production:operationBO[@key='value']",
                        new InputSource(fileReader)
                );
        System.out.println(data);

Ответы (1 шт):

Автор решения: Yitzhak Khabinsky

Ваш XML имеет пространство имен (namespace). Следует позаботиться об этом.

Пожалуйста, смотрите ниже, как.

Java

NamespaceContext ctx = new NamespaceContext() {
    public String getNamespaceURI(String prefix) {
        return prefix.equals("production") ? "whatever-is-hidden" : null; 
    }
    public Iterator getPrefixes(String val) {
        return null;
    }
    public String getPrefix(String uri) {
        return null;
    }
};

XPath xPath = XPathFactory.newInstance().newXPath();
xpath.setNamespaceContext(ctx);

String data = xPath.evaluate("//production:operationBO/value/text()",
                        new InputSource(fileReader)
                );
System.out.println(data);
→ Ссылка