Это «старый» вопрос, но ответ все еще может быть актуальным.Одна из проблем API DOM4J заключается в том, что существует слишком много способов сделать то же самое;слишком много удобных методов с тем эффектом, что вы не можете видеть лес за деревьями.В вашем случае вы должны получить список дочерних элементов и вставить ваш элемент в нужную позицию: что-то вроде этого (не проверено):
// get a list of e's sibling elements, including e
List elements = e.getParent().elements();
// insert new element at e' position, i.e. before e
elements.add(elements.indexOf(e), lr);
Списки в DOM4J являются живыми списками, то есть операция с мутирующим списком влияет надерево документа и наоборот
В качестве примечания, DOMElement и все другие классы в org.dom4j.dom
- это реализация DOM4J, которая также поддерживает API-интерфейс w3c DOM.Это редко требуется (я бы не поместил его и кучу других «эзотерических» пакетов, таких как bean, datatype, jaxb, swing и т. Д., В один и тот же модуль распространения).Сконцентрируйтесь на основных пакетах org.dom4j
, org.dom4j.tree
, org.dom4j.io
и org.dom4j.xpath
.