XmlWriter WriteWhiteSpace

27/04/2009 - 18:05 von Werner Perplies | Report spam
Hi,

ixh erzeuge mit dem XmlWriter eine Xml-Datei. Das fubktioniert auch recht
gut, bis auf ein Problem:

An bestimmten Stellen möchte ich Leerzeilen einfügen, dass mache ich so:

xtw ist der XmlWriter, node ist eine Klasse von mir, die das jeweilige
Xml-Element enthàlt:

...
else if (node.Type == XmlNodeType.WhiteSpace)
{
xtw.WriteWhitSpace(System.Environment.NewLine);
}
...
beim ersten Durchlauf erhalte ich auch das erwartete Ergebnis, bei jedem
weiteren Durchlauf wird keine Leerzeile mehr eingefügt.

Zur Kontrolle habe ich mal folgendes probiert:
...
else if (node.Type == XmlNodeType.WhiteSpace)
[
xtw.WriteWhitSpace(System.Environment.NewLine);
xtw.WriteComment("WhiteSpace");
}
...

das Ergebnis sieht dann so aus:
<!--WhiteSpace--><IrgendeinGewalltesTag />
<!--WhiteSpace--><IrgendeinGewalltesTag />
<!--WhiteSpace--><IrgendeinGewalltesTag />

Ich hoffe, jetzt hat jemand eine erhellende Idee, was hier schieflàuft.

Vielen Dank.

Werner
Regulàre Ausdrücke testen?
http://www.weepee.de/de/wps_regex/wps_regex.html
www.weepee.eu
 

Lesen sie die antworten

#1 Werner Perplies
27/04/2009 - 19:11 | Warnen spam
Am Mon, 27 Apr 2009 18:05:34 +0200 schrieb Werner Perplies:

Noch eine kleine Ergànzung:

Der folgende Code:
Encoding e = Encoding.UTF8;

bool standAlone = true;
if (standalone == "no")
{
standAlone = false;
}
XmlTextWriter xtw = new XmlTextWriter(fileName, e);
xtw.Formatting = Formatting.Indented;
xtw.Indentation = 3;
xtw.IndentChar = ' ';
xtw.WriteStartDocument(standAlone);
xtw.WriteStartElement("Start");
xtw.WriteStartElement("Starten");
xtw.WriteWhitespace(System.Environment.NewLine);
xtw.WriteComment("Kommentar");
xtw.WriteWhitespace(System.Environment.NewLine);
xtw.WriteEndElement();
xtw.WriteEndElement();
xtw.Close();

ergibt dieses Ergebnis:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Start>
<Starten>
<!--Kommentar-->
</Starten>
</Start>


Auch die Einrückung (3 Zeichen) ist nur bei <Starten> ok

VS 2008 Express

Gruß
Werner
Regulàre Ausdrücke testen?
http://www.weepee.de/de/wps_regex/wps_regex.html
www.weepee.eu

Ähnliche fragen