Hallo, habe schon das ganze Forum durchsucht, aber leider keine Lösung fü mein Problem gefunden.
Ich möchte aus einer bestehenden Datenstruktur eine XML Datei erstellen, die die folgende Struktur haben soll.
<Produkt name="A" art="Produkt"/>
<Teil name="B" menge="10"/>
<Teil name="C" menge="1"/>
</Produkt>
<Produkt ...>
...
</Produkt>
Ich bekomme es hin durch meine Datenstruktur durchzugehen und alle Werte in der Console auszugeben, aber mein Code schreibt immer nur das letzte Element in die XML Datei.
Schonmal vielen Dank!
Ich möchte aus einer bestehenden Datenstruktur eine XML Datei erstellen, die die folgende Struktur haben soll.
<Produkt name="A" art="Produkt"/>
<Teil name="B" menge="10"/>
<Teil name="C" menge="1"/>
</Produkt>
<Produkt ...>
...
</Produkt>
Ich bekomme es hin durch meine Datenstruktur durchzugehen und alle Werte in der Console auszugeben, aber mein Code schreibt immer nur das letzte Element in die XML Datei.
Code:
package xml;
import java.io.*;
import java.util.*;
import java.util.Iterator;
import java.util.LinkedList;
import org.jdom.*;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
import produktiosplan.ProduktBeschreibung;
import produktiosplan.ProduktStruktur;
import spiel.Marktplatz;
public class Erstellen{
public void erstelleNachricht2() throws IOException{
ProduktStruktur ps = ProduktStruktur.getInstance();
String produkt = "Produkt";
String teil = "Teil";
Iterator<ProduktBeschreibung> it = ps.getZusammensetzung().iterator();
while(it.hasNext()){
root.setText("");
Element prodEle= new Element(produkt);
Element teilEle = new Element(teil);
prodEle.addContent(teilEle);
root.addContent(prodEle);
ProduktBeschreibung tmp = it.next();
if (tmp.getArt().equals("Rohstoff")){
System.out.println("Rostoff");
// Attribute setzen
System.out.println(tmp.getName());
System.out.println(tmp.getArt());
prodEle.setAttribute("name", tmp.getName()).setAttribute("art", tmp.getArt());
root.addContent(prodEle);
}
else
{
System.out.println(tmp.getName());
System.out.println(tmp.getArt());
Iterator it2 = tmp.getZusammensetzung().iterator();
System.out.println("Kein Rostoff, sondern " + tmp.getArt());
prodEle.setAttribute("name", tmp.getName()).setAttribute("art", tmp.getArt());
while (it2.hasNext()){
prodEle.addContent(new Element(produkt).setAttribute("name", tmp.getName()).setAttribute("art", tmp.getArt()));
prodEle.setAttribute("name", tmp.getName()).setAttribute("art", tmp.getArt());
String tmp1 = (String) it2.next();
System.out.println("Teilename:"+ tmp1.charAt(0));
System.out.println("Teilmenge:"+ tmp1.charAt(2));
// Attribute setzen
teilEle.setAttribute("name", String.valueOf(tmp1.charAt(0))).setAttribute("menge",String.valueOf(tmp1.charAt(2)));
prodEle.setText("");
prodEle.addContent(teilEle);
}
}
}
Document doc = new Document(root);
File file = new File("d:\\File.xml");
FileOutputStream out = new FileOutputStream(file);
XMLOutputter serializer= new XMLOutputter(Format.getPrettyFormat());
serializer.output(doc, out);
System.out.println(doc);
}
}
Schonmal vielen Dank!