Как добавить узлы 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-документе.

Любые вопросы?

Другие вопросы по тегам