Я использую XMLDog для чтения значений из файла XML. Проблема в том, что я продолжаю получать нулевые значения.
Это XML-файл:
<?xml version="1.0" encoding="UTF-8"?>
<persons>
<person>
<name>John Doe</name>
<age>30</age>
</person>
<person>
<name>Jane Doe</name>
<age>30</age>
</person>
</persons>
И код, который я использую:
final DefaultNamespaceContext nsContext = new DefaultNamespaceContext();
final XMLDog dog = new XMLDog(nsContext);
final Expression expression = dog.addXPath("/persons/person/name");
final XPathResults result = dog.sniff(new InputSource("/mnt/data-disk/persons.xml"));
final List<NodeItem> list = (List<NodeItem>)result.getResult(expression);
list.forEach(item -> System.out.println("Path: " + item.location + ", value: " + item.value));
Вот что я получаю:
Path: /persons[1]/person[1]/name[1], value: null
Path: /persons[1]/person[2]/name[1], value: null
Мне нужна помощь, чтобы выяснить, почему я получаю null
для значения.
В моем проекте мне нужен точный путь и значение.
Есть ли другой способ добиться этого?