import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;
public class XMLControl {
public static void saveProject(DeinModelRoot root, File path) {
final Document doc = createXmlDocument(root);
try {
// XML Outputter erzeugen
final XMLOutputter xmlOutput = new XMLOutputter();
// FileOutputStream für Festplattenzugriff
final FileOutputStream fileStream = new FileOutputStream(path);
final OutputStreamWriter outputStream = new OutputStreamWriter(fileStream, "UTF-8");
// erzeugtes Dokument übergeben
xmlOutput.output(doc, outputStream);
// Streams zum Schreiben nötigen
outputStream.flush();
fileStream.flush();
// Streams wieder schließen
outputStream.close();
fileStream.close();
} catch (IOException ioe) {
// damit sollte man versuchen irgendwie umzugehen (wie es in deiner Anwendung üblich ist)
ioe.printStackTrace();
}
}
private Document createXmlDocument(DeinModelRoot root) {
final Document doc = new Document();
// XML-Root anlegen
final Element rootElement = new Element("NameDeinModelRoot");
// Attribute übernehmen (sofern vorhanden)
rootElement.setAttribute("NameDeinModelRootAttribut", "WertDeinModelRootAttribut");
// XML-Root hinterlegen
doc.setRootElement(rootElement);
for (DeinModelKindElement singleChildElement : root.getKindElemente()) {
// Kindelemente auslesen und hinzufügen
rootElement.addContent(createChildElement(singleChildElement));
}
return doc
}
private Element createChildElement(DeinModelKindElement singleChildElement) {
final Element child = new Element("NameDeinModelKind");
// Attribute übernehmen (sofern vorhanden)
child.setAttribute("NameDeinModelKindAttribut", "WertDeinModelRootAttribut");
return child;
}
}