Frage

Ich generiere XML über XmlTextWriter.

Die Datei sieht für meine Augen gut aus, bestätigt (bei WC3) und wurde vom Kunden akzeptiert.

Ein Kundenanbieter beschwert sich jedoch darüber, dass die Leitungsendings CRLF sind, anstatt nur CR.

Nun, ich bin auf einer Win32-Maschine mit C#und CRLF ist die Win32-Standard-Linie. Gibt es eine Möglichkeit, die Linienende im xmltextwriter zu ändern?

Auch-sollten die Linienendings nicht für einen ordnungsgemäßen XML-Parser spielen?

siehe auch: Was sind die Kutschenrendite, Linefeed und Form Feed?

Hinweis: Sieht so aus, als ob die einzige Antwort eine seitliche Lösung ist - Sie müssen den XMLWriter anstelle des XMLTextWriters verwenden

War es hilfreich?

Lösung

Natürlich finde ich Momente nach der Frage einen Hinweis auf MSDN (den ich nicht über Google finden konnte), auf das sich bezieht Xmlwritersettings.Newlinechars

was mich dann zu der inakzeptierten Antwort veranlasste Also: XMLDocument zum Datieren mit spezifischem Newline -Zeichen (C#) schreiben

Es ist alles in der Terminologie .....

Andere Tipps

Verwenden Sie die XMLWritersettings, um festzustellen, was Sie als Ende der Linien -SHAR haben möchten.

XmlWriterSettings mySettings = new XmlWriterSettings();
mySettings.NewLineChars = "\r";

XmlWriter writer = XmlWriter.Create(
                         new StreamWriter(@"c:\temp\hello.xml", mySettings);

Ich weiß nicht, wo das Ende der Zeilenzeichen von Bedeutung wäre. Ich bin noch nie darauf eingestuft.

Welche Linienende verwendet werden, sollte für einen ordnungsgemäß implementierten Parser keine Rolle spielen (siehe Die Spezifikation), Ich zitiere (Betonung meiner):

Um die Aufgaben von Anwendungen zu vereinfachen, ist der XML -Prozessor muss sich so verhalten, als ob es alle Linienbrüche normalisiert hätte In externen Parsen-Entitäten (einschließlich der Dokumentenentität) bei der Eingabe vor der Parsen, indem sowohl die Zwei-Charakter-Sequenz #xd #xa als auch alle #xD übersetzt werden, auf die nicht #xa in ein einzelnes #xA-Zeichen gefolgt wird.

Daher sollten Sie mit der Art und Weise, wie Sie es gerade haben, in Ordnung sein. Vielleicht möchten Sie sich fragen, was der Kundenanbieter dort tatsächlich tut. Wahrscheinlich tun sie es falsch.

Verwenden Sie die XMLWRITRITERSettings.Newlinechars -Eigenschaft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top