_Toni_ Geschrieben 7. Dezember 2009 Geschrieben 7. Dezember 2009 (bearbeitet) 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 2009 von _Toni_ Zitieren
Dragon8 Geschrieben 7. Dezember 2009 Geschrieben 7. Dezember 2009 Was mir da als erstes einfällt, speicherst du die aktualisierten Daten nach der Verarbeitung auch wieder in die selbe XML-Datei ab? Zitieren
_Toni_ Geschrieben 7. Dezember 2009 Autor Geschrieben 7. Dezember 2009 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(); Zitieren
_Toni_ Geschrieben 7. Dezember 2009 Autor Geschrieben 7. Dezember 2009 also die ganze Sache funktioniert nun doch. Und zwar genau so wie sie da steht... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.