Мне нужно добавить список элементов следующим образом. Предположим, что элемент A является элементом root документа.
<A>
<B>
<C>
<D/>
<E/>
<F/>
<F/>
<!-- the number of existing element F is dynamic -->
<!-- add n elements F here after the last existing element F and before element G
-->
<G/>
<H/>
</C>
</B>
</A>
Сначала возникает проблема с xpath. Я указал элемент G с помощью xpath, но не уверен, что xpath верен, потому что возвращаемый список всегда пуст. Я пробовал много других простых xpaths, но следующая функция никогда не возвращает непустой список. В настоящее время я использую dom4j
//element G
List<Node> targetNodeToPrepend = document.selectNodes("/A/B/C/G");
. Фактический документ xml был на самом деле гораздо более сложным и длинным с множеством уровней вложенности элементов (19) и соответствовал схеме xml, предоставленной клиентом. Я не уверен, является ли сложность содержимого причиной сбоя xpath.
Во-вторых, как добавить список элемента F в предполагаемую позицию, которая находится между последним элементом F и элементом G? Любой пример кода приветствуется.
Кроме dom4j, любое решение, использующее jaxb, org.w3 c .dom, также поможет.
PS Извините, я не могу вставить код, который я тестировал здесь по соображениям безопасности.