#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, но у меня ничего не получалось. Я совершенно не понимаю, что и где должно измениться. Это была бы скромная просьба, пожалуйста, помогите мне.