Entwickler-Ecke

IO, XML und Registry - XMLWriter schreibt alles nur in eine Zeile


MoBBer - Mo 20.07.09 10:30
Titel: XMLWriter schreibt alles nur in eine Zeile
Hallo zusammen,

ich hab mich jetzt noch ein wenig mit XML-Dokumenten ohne Serilization beschäftigt.
Dabei hab ich das Problem, dass folgender Code:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
            XmlWriter xw = XmlWriter.Create(Application.StartupPath + @"\Output.xml");
            xw.WriteStartDocument();
            xw.WriteStartElement("Operationsdefinition");
            xw.WriteStartAttribute("verkettet");
            xw.WriteValue(operation[2]);
            xw.WriteEndAttribute();
            xw.WriteEndElement();
            xw.WriteEndDocument();
            xw.Close();


alles nur in eine Zeile schreibt.
Hier die Output.xml:


XML-Daten
1:
<?xml version="1.0" encoding="utf-8"?><Operationsdefinition verkettet="nein" />                    


JüTho - Mo 20.07.09 10:56

Hallo,

benutze XmlWriter.Settings und lege in XmlWriterSettings passende Einstellungen fest.

Jürgen


Kha - Mo 20.07.09 11:00

Wenn es nicht gerade um höchste Performance geht, gibt es übrigens genügend komfortablere APIs, allen voran System.Xml.Linq.XElement ("LINQ to XML").


MoBBer - Mo 20.07.09 11:04

Danke für die schnellen Antworten.

Es geht nur darum, dass mein Chef will, dass ich mit Serilization und mit dem XMLWriter einmal gearbeitet habe, damit ich beides kann.
Was ich im Endeffekt nun nutze ist ihm egal. Linq möchte ich allerdings nicht benutzen da Linq Sachen nicht auf .Net 2.0 funktionieren.

So gehts:

C#-Quelltext
1:
2:
3:
            XmlWriterSettings temp = new XmlWriterSettings();
            temp.Indent = true;
            XmlWriter xw = XmlWriter.Create(Application.StartupPath + @"\Output.xml", temp);


Warum ist der Einzug eigentlich nicht standardmässig aktiviert?
Gerade dass macht die XML-Dateien doch so gut lesbar!