Veröffentlicht 7. Dezember 200915 j Hallo, ich habe eine XML-Datei nach folgendem Schema: <?xml version="1.0" encoding="utf-8" ?> <Netz xmlns="http://tempuri.org/Netz.xsd"> <DatenTable> <SchuelerId>0</SchuelerId> <DiensstellenID>471100</DiensstellenID> </DatenTable> <DatenTable> <SchuelerId>1</SchuelerId> <DiensstellenID>3536546</DiensstellenID> </DatenTable> </Netz> Und nun möchte ich jeden Datentable noch einen neuen Tag hinzufügen. So das die XML am Ende folgendermaßen aussieht: <?xml version="1.0" encoding="utf-8" ?> <Netz xmlns="http://tempuri.org/Netz.xsd"> <DatenTable> <SchuelerId>0</SchuelerId> <DiensstellenID>471100</DiensstellenID> <Name>Heinz</Name> </DatenTable> <DatenTable> <SchuelerId>1</SchuelerId> <DiensstellenID>3536546</DiensstellenID> <Name>Heinz</Name> </DatenTable> </Netz> ich habe es schon probiert, allerdings ohne erfolg. Element root = doc.getRootElement(); List<Element> elemL = root.getChildren(); for (Element e : elemL) { Element Name = new Element("Name"); Name.addContent("Heinz"); e.addContent(Name); } natürlich sollt nicht jedes Datentable den Namen "heinz" bekommen, ist nur der einfachheit halber grad so gemacht... problem an der sache ist einfach, dass er keinen fehler ausspuckt, aber auch einfach gar nichts passiert. die xml datei sieht genauso aus wie vorher. hat jemand ne idee? Bearbeitet 7. Dezember 200915 j von _Toni_
7. Dezember 200915 j Was mir da als erstes einfällt, speicherst du die aktualisierten Daten nach der Verarbeitung auch wieder in die selbe XML-Datei ab?
7. Dezember 200915 j Ja, die ganze Sache wird in eine "Temp-XML" gespeichert. Ich möchte auch nur dort die Änderung. Die original XML soll erhalten bleiben. String xmlCopy = originalXML.substring(0, originalXML.length() - 4) + ".temp"; SAXBuilder builder = new SAXBuilder(); Document doc = builder.build(new File(originalXML)); // xmlCopy Element root = doc.getRootElement(); List<Element> elemL = root.getChildren(); for (Element e : elemL) { Element Name = new Element("Name"); Name.addContent("Heinz"); e.addContent(Name); } XMLOutputter output = new XMLOutputter(); FileOutputStream out = new FileOutputStream(xmlCopy); output.output(doc, out); out.flush(); out.close();
7. Dezember 200915 j also die ganze Sache funktioniert nun doch. Und zwar genau so wie sie da steht...
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.