скопируйте XML-узел и вставьте его на том же корневом уровне

#java #xml

Вопрос:

Я хотел скопировать узел и вставить его на тот же уровень. Позже я хотел изменить скопированные данные. Но я не могу сначала сделать копию.
XML, который у меня есть

 <header>
    <body>
        <studentinfo>
            <name>Rakesh</name>
            <studentid>123543234</studentid>
            <Location>UK</Location>
        </studentinfo>
    </body>
</header>
 

И XML, которым я хотел быть, это

 <header>
    <body>
        <studentinfo>
            <name>Rakesh</name>
            <studentid>123543234</studentid>
            <Location>UK</Location>
        </studentinfo>
        <studentinfo>
            <name>Rakesh</name>
            <studentid>123543234</studentid>
            <Location>UK</Location>
        </studentinfo>
    </body>
</header>
 

Код, который написан

 File file = new File("E:\data.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(file);

Document targetDoc = db.parse(file);
NodeList nodeList = doc.getElementsByTagName("body");
Node copyTo = nodeList.item(0);

NodeList studentinfoList = doc.getElementsByTagName("studentinfo");

for( int i = 0; i < studentinfoList.getLength(); i    ){
 Node n = studentinfoList.item(i);
 Node copyOfn = targetDoc.importNode(n,true);
 copyTo.appendChild(copyOfn);
}
 

После запуска скрипта я получаю исключение в виде

Исключение в потоке «главная» org.w3c.dom.DOMException: WRONG_DOCUMENT_ERR: Узел используется в документе, отличном от того, который его создал.(на CopyTo.appendChild(copyOfn);)

Я просматривал сообщения StackOverflow, но у меня ничего не получалось. Я совершенно не понимаю, что и где должно измениться. Это была бы скромная просьба, пожалуйста, помогите мне.