вы можете клонировать дерево или только узел с API DOM cloneNode (boolean isDeepCopy).
Document originalDoc = parseDoc();
Document clonedDoc = originalDoc.cloneNode(true);
к сожалению, поскольку cloneNode () в Document (в соответствии с API) специфичен для реализации, мы должны пойти по пуленепробиваемому пути, то есть создать новый Document и импортировать клонированные узлы из исходного документа:
...
Document clonedDoc = documentFactory.newDocument();
cloneDoc.appendChild(
cloneDoc.importNode(originalDoc.getDocumentElement(), true)
);
обратите внимание, что ни одна из операций не является поточно-ориентированной, поэтому либо используйте их только локально, либо Thread-Local или синхронизируйте их.