Zum Inhalt springen

XML neuen Tag hinzufügen


_Toni_

Empfohlene Beiträge

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 von _Toni_
Link zu diesem Kommentar
Auf anderen Seiten teilen

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();

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...