Как добавить узлы XML несколько раз с VTD-XML?
У меня есть список предметов. Я анализирую существующий файл, если я нахожу эти элементы, затем я обновляю необходимые поля, но если я не нахожу эти элементы в файле, то я хочу добавить его в конец файла (список элементов xml). Далее в коде, поэтому он должен найти последний элемент в цикле списка и написать новый после него.
String newNode = createNewItem(listItem); //get xml string
ap.selectXPath("//item[last()]");
index = ap.evalXPath();
if (index != -1) {
xm.insertAfterElement(newNode);
}
После цикла я сохраняю изменения:
xm.output(updatedFile);
Но в результате я вижу, что только один элемент был добавлен в файл. Другие пропустили. Как добавить все предметы?
1 ответ
Это общая проблема для новичков в VTD-XML. Логика вашего приложения должна позаботиться о процессе сопоставления... и затем составить фрагмент, который вы затем вставите в конец вашего XML-файла за один шаг.
Предположим, в вашем списке есть три элемента: a, b и c. Логика вашего приложения должна запрашивать XML-документ, чтобы определить, что a и c должны быть вставлены после конца XML-документа. Ваше приложение должно будет создать конкатенацию фрагмента xml, повторяющего a и c... наконец, ваше приложение вставит это представление после последнего элемента в вашем XML-документе.
Любые вопросы?