Hallo!
Ich möchte mehrere XML-Dateien zu einer zusammenfügen
Das ist der mögliche Input
//Datei1.xml
<?xml version="1.0" encoding="UTF-8" ?>
<Test>
<ReferencePoint>
//hier ist Inhalt drin
</ReferencePoint>
<ReferencePoint>
</ReferencePoint>
</Test>
//Datei2.xml
<?xml version="1.0" encoding="UTF-8" ?>
<Test>
<ReferencePoint>
//hier ist Inhalt drin
</ReferencePoint>
<ReferencePoint>
</ReferencePoint>
</Test>
Aktuell wird leider nur Datei 1 ausgegeben und Datei 2 kommt gar nicht erst dazu ...
Es sollte aber so sein
<?xml version="1.0" encoding="UTF-8" ?>
<Test>
<ReferencePoint>
//hier ist Inhalt drin
</ReferencePoint>
<ReferencePoint>
</ReferencePoint>
<ReferencePoint>
</ReferencePoint>
<ReferencePoint>
</ReferencePoint>
</Test>
Das ist mein Code
Ich möchte mehrere XML-Dateien zu einer zusammenfügen
Das ist der mögliche Input
//Datei1.xml
<?xml version="1.0" encoding="UTF-8" ?>
<Test>
<ReferencePoint>
//hier ist Inhalt drin
</ReferencePoint>
<ReferencePoint>
</ReferencePoint>
</Test>
//Datei2.xml
<?xml version="1.0" encoding="UTF-8" ?>
<Test>
<ReferencePoint>
//hier ist Inhalt drin
</ReferencePoint>
<ReferencePoint>
</ReferencePoint>
</Test>
Aktuell wird leider nur Datei 1 ausgegeben und Datei 2 kommt gar nicht erst dazu ...
Es sollte aber so sein
<?xml version="1.0" encoding="UTF-8" ?>
<Test>
<ReferencePoint>
//hier ist Inhalt drin
</ReferencePoint>
<ReferencePoint>
</ReferencePoint>
<ReferencePoint>
</ReferencePoint>
<ReferencePoint>
</ReferencePoint>
</Test>
Das ist mein Code
Java:
package coordinatetester;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.StringWriter;
import java.io.Writer;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
public class TestTest {
public static void main(String [] args) throws IOException
{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
Document doc = null;
Document doc2 = null;
try {
doc = db.parse(new File("C:/Users/zerox92/Desktop/workspace/CoordinateTester/xmlFiles/eins.xml"));
doc2 = db.parse(new File("C:/Users/zerox92/Desktop/workspace/CoordinateTester/xmlFiles/zwei.xml"));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mergeSecondLevel(doc, doc2);
}
public static void mergeSecondLevel(Document from, Document to) throws IOException {
Element fromRoot = from.getDocumentElement();
Element toRoot = to.getDocumentElement();
Node child = null;
while ((child = fromRoot.getFirstChild()) != null) {
to.adoptNode(child);
toRoot.appendChild(child);
}
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(to);
StreamResult result = new StreamResult(new StringWriter());
try {
transformer.transform(source, result);
Writer output = new BufferedWriter(new FileWriter("C:/Users/zerox92/Desktop/workspace/CoordinateTester/xmlFiles/lol.xml"));
String xmlOutput = result.getWriter().toString();
output.write(xmlOutput);
output.close();
System.out.println("Ready");
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}