Laden...

[gelöst] Leerzeilen an ein XmlDocument anhängen ??

Erstellt von leoB vor 16 Jahren Letzter Beitrag vor 16 Jahren 981 Views
L
leoB Themenstarter:in
32 Beiträge seit 2007
vor 16 Jahren
[gelöst] Leerzeilen an ein XmlDocument anhängen ??

Hallo,
hoffe ich kann das hier so schreiben. Bisher habe ich noch keine gute Antwort gefunden.

Ich habe ein XmlDocument, welches ich über die Load-Methode mit einer Datei füttere. Anschließend werden einige Nodes verändert, was auch korrekt funktioniert. Damit die dabei entstandenen xml - Dateien vom verarbeitenden System angenommen werden, benötigen die Dateien zwei Leerzeilen am Ende. Allerdings weiß ich nicht, wie ich diese Leerzeilen ans Ende bekomme.

Bisher habe ich versucht irgendwie mit XmlDocument-eigenen Mitteln zu arbeiten, was aber nicht funktioniert.

Ein anderer Versuch war, das ich nach dem Speichern der Datei (XmlDocument.Save(); ) versuche, die Datei über ein File-Objekt zu nutzen (genaugenommen File.AppendAllText( datei, "\n\n", Encoding.UTF-8 ); ), bekomme aber immer wieder die Fehlermeldung, dass die Datei von einem anderen Prozess genutzt wird und daher nicht beschrieben werden kann.


       public bool saveAs(string directory, string filename)
       {
          XmlWriterSettings xSett = new XmlWriterSettings();
          xSett.Indent = true;
          xSett.IndentChars = "  ";
          xSett.NewLineChars = "\n";

          XmlWriter xWrite = XmlWriter.Create(directory + filename, xSett);
          document.Save(xWrite);
          document = null;

          File.AppendAllText(directory + filename, "\n\n", System.Text.Encoding.UTF8);
       }

Was mache ich da falsch? Gibt es andere Möglichkeiten?

Vielen Dank schonmal

343 Beiträge seit 2007
vor 16 Jahren

Hallo, die AppendAllText Idee ist eigentlich gut, hätt ich auch so gemacht. Du musst nur vorher sicherstellen dass die Datei nicht gesperrt ist (hast du ja schon richtig erkannt).
Dass du document auf null setzt bringt da natürlich nichts, du musst auf jeden Fall mal den XmlWriter schließen -> XmlWriter.Close(); also in deinem Fall xWrite.Close();
Dies schließt (laut MSDN) den benutzten FileStream und du solltest den Text anhängen können.

Lg
Preli

[- www.saftware.net -](http://www.saftware.net/)
L
leoB Themenstarter:in
32 Beiträge seit 2007
vor 16 Jahren

Wunderbar... ich frag mich immer wieder wie man sowas übersehen kann 😉

Danke....