Я пытаюсь разобрать следующий XML и создавать объекты Java, соответствующие основные элементы:ВТД-XML разбор несколько вхождений элемента
<bookCase>
<material>wood</material>
<shelves>12</shelves>
...
<listOfBooks>
<book name="book1">
<author>someone</author>
<pages>200</pages>
...
</book>
<book name="book2">
<author>someone else</author>
<pages>500</pages>
...
</book>
</bookCase>
Так что я хочу создать Java объектов BOOKCASE, который содержит список объектов книги.
Я пытаюсь использовать AutoPilot с XPath, но хотя я могу добраться до основных значений (material = "wood", shelves = "12"), я не знаю, как проходить через listOfBooks и создавать два объекта Book. Есть идеи?
С помощью простого метода ниже я могу получить индекс двух элементов книги, но что я с ними?
private List<Integer> getBooksNodes() throws VTDException {
final String xpath = "/bookCase/listOfBooks/book";
ap.selectXPath(xpath);
final List<Integer> nodeList = new ArrayList<>();
int node;
while ((node = ap.evalXPath()) != -1) nodeList.add(node);
ap.resetXPath();
return nodeList;
}
Как сказать автопилот, чтобы исследовать значения для «автора» XPath и «страницы» для каждой книги по отдельности, так что я могу создать книгу объекта каждый раз, когда автопилот закончил исследовать этот раздел?
Простой ответ заключается в используйте API-интерфейс курсора объекта VTDNav ... скоро напишите и заполните ответ. –
Я ответила на ваш вопрос? –