У меня есть входной XML-файл, мне нужно скопировать элементы и теги внутри, но проблема в том, что внутри узла <Name>
есть еще один тег с именем <Name>
. Как я могу скопировать в этой ситуации?
Input.xml
<?xml version="1.0" encoding="utf-8" ?>
<data>
<Name>
<College name="test1">
<Name>
<dummyData1>dummy1</dummyData1>
<dummyData2>dummy2</dummyData2>
</Name>
</College>
<SomeData>SomeValue</SomeData>
</Name>
<SomeOtherTags>Not needed</SomeOtherTags>
<Address>
<Country name="test2">
<City name = "city1">
<zip>
<dummy3>dummy3</dummy3>
</zip>
</City>
</Country>
</Address>
</data>
base.xml
<?xml version="1.0" encoding="utf-8" ?>
<data>
<Name>
</Name>
<Address>
</Address>
</data>
Это то, что я ожидаю
Output.xml
<?xml version="1.0" encoding="utf-8" ?>
<data>
<Name>
<College name="test1">
<Name>
<dummyData1>dummy1</dummyData1>
<dummyData2>dummy2</dummyData2>
</Name>
</College>
<SomeData>SomeValue</SomeData>
</Name>
<Address>
<Country name="test2">
<City name = "city1">
<zip>
<dummy3>dummy3</dummy3>
</zip>
</City>
</Country>
</Address>
</data>
Добавление недостающего кода, спасибо Andreas
Document outputDoc = db.parse(baseXml);
Document inputDoc = db.parse(inputXml);
Node outputNameNode = outputDoc.getElementsByTagName("Name").item(0);
Node outputAddressNode = outputDoc.getElementsByTagName("Address").item(0);
NodeList nameNodeList = inputDoc.getElementsByTagName("Name");
System.out.println(nameNodeList.getLength());
for (int i = 0; i < nameNodeList.getLength(); i++) {
System.out.println(nameNodeList.item(i));
Node outputNode = outputDoc.importNode(nameNodeList.item(i), true);
outputNameNode.appendChild(outputNode);
}