Я объединил два xml файла, используя java dom parser: a. xml
<config>
<category name="mimetypes">
<!-- application mime types -->
<mime-type type=1></mime-type>
<!-- eps -->
<mime-type type=2></mime-type>
<!-- octet-stream -->
<mime-type type=3></mime-type>
</category>
</config>
b. xml:
<config>
<category name="mimetypes">
<!-- application mime types -->
<!-- eps -->
<mime-type type=2></mime-type>
<!-- octet-stream -->
<mime-type type=3></mime-type>
<mime-type type=4></mime-type>
</category>
</config>
выход I get
<config>
<category name="mimetypes">
<!-- application mime types -->
<mime-type type=1></mime-type>
<!-- eps -->
<mime-type type=2></mime-type>
<!-- octet-stream -->
<mime-type type=3></mime-type>
</category>
<mime-type type=2></mime-type>
</config>
Ожидаемый:
<config>
<category name="mimetypes">
<!-- application mime types -->
<mime-type type=1></mime-type>
<!-- eps -->
<mime-type type=2></mime-type>
<!-- octet-stream -->
<mime-type type=3></mime-type>
<mime-type type=4></mime-type>
</category>
</config>
Код, который я пробовал:
public class MergeXmlDemo {
public static void main(String args[]){
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
Document doc = null;
Document doc2 = null;
db = dbf.newDocumentBuilder();
doc = db.parse(new File("second.xml"));
doc2 = db.parse(new File("first.xml"));
NodeList ndListFirstFile = doc.getElementsByTagName("config");
Node nodeArea = doc.importNode(doc2.getElementsByTagName("mime-type").item(0), true);
ndListFirstFile.item(0).appendChild(nodeArea);
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(doc);
//StreamResult result = new StreamResult(new StringWriter());
StreamResult result = new StreamResult(System.out);
transformer.transform(source, result);
}
объединение двух xml файлов с одинаковым числом узлов дает файл с тем же числом узлов и типом = 4 отсутствует в выводе. Любая помощь приветствуется