Wie schreibe ich NICHT XML mit hübschem Druck von C # DataSet

8

Wie schreibt man ein DataSet in eine Datei, ohne dass es mit einem hübschen Ausdruck geschrieben wird?

Unter Verwendung von C # und .NET 2.0 habe ich dataSet.WriteXml (fileName, XmlWriteMode.IgnoreSchema) verwendet, das standardmäßig die Xml-Datei mit hübschem Druck schreibt. Die Firma, die die Xml-Dateien, die ich schreibe, konsumiert, schlug vor, dass das Schreiben ohne den hübschen Druck sie nicht beeinflusst und die Größe der Dateien erheblich verringert. Mit ein wenig herumspielen im Namespace System.Xml habe ich eine Lösung gefunden. Bei meiner Suche habe ich die Antwort jedoch nirgends gefunden, daher dachte ich, dass es für jemand anderen in der Zukunft hilfreich sein könnte, wenn ich die Frage posten würde. Außerdem wäre ich überhaupt nicht überrascht, wenn es eine bessere oder zumindest andere Möglichkeit gibt, dies zu erreichen.

Für diejenigen, die es nicht wissen (ich bis heute nicht), ist Xml "pretty print":

%Vor%

Ohne hübschen Druck sieht es so aus:

%Vor%

Zusätzlich war die Größeneinsparung signifikant, 70mb Dateien werden ungefähr 40mb. Ich werde meine Lösung später heute veröffentlichen, wenn niemand sonst hat.

    
Timothy Carter 08.01.2009, 16:13
quelle

4 Antworten

8

Es ist ziemlich einfach, Sie müssen nur ein XmlWriter mit einem XmlWriterSettings erstellen, bei dem die Eigenschaft Indent auf false gesetzt ist:

%Vor%     
casperOne 08.01.2009, 16:28
quelle
6

Noch einfacher als die Verwendung von XmlWriterSettings:

%Vor%     
atsjoo 08.01.2009 16:32
quelle
2

Das ist, was ich versuchen würde ...:

EDIT: (kompiliert nicht, Einstellungen müssen im XmlWriter.Create-Konstruktor hinzugefügt werden - aber die Theorie ist da.)

%Vor%     
cjk 08.01.2009 16:25
quelle
1

Wenn es nicht möglich ist, die Formatierung des XML-Datasets zu beeinflussen, würde ich einfach die XML-Datei in ein neues XML-Dokument laden und XMLDocument.OuterXml, das formatiert ist, senden.

    
Kev 08.01.2009 16:23
quelle

Tags und Links