C #: XmlTextWriter.WriteElementString schlägt bei leeren Zeichenfolgen fehl?

7

Ich verwende XmlTextWriter und seine WriteElementString Methode, zum Beispiel:

%Vor%

Die erwartete XML-Ausgabe lautet:

%Vor%

Wenn zum Beispiel inputEmail leer ist, erhalte ich das Ergebnis XML wie folgt:

%Vor%

Ich würde es erwarten:

%Vor%

Was mache ich falsch? Gibt es eine Möglichkeit, mein erwartetes Ergebnis auf einfache Weise mit XmlTextWriter zu erreichen?

    
Roee Adler 24.07.2009, 07:18
quelle

4 Antworten

18

Ihre Ausgabe ist korrekt. Ein Element ohne Inhalt sollte als <tag/> geschrieben werden.

Sie können die Verwendung des vollständigen Tags erzwingen, indem Sie WriteFullEndElement ()

aufrufen %Vor%

Das gibt <Email></Email> aus, wenn inputEmail leer ist.

Wenn Sie dies mehr als einmal tun möchten, können Sie eine Erweiterungsmethode erstellen:

%Vor%

Dann würde Ihr Code werden:

%Vor%     
Philippe Leybaert 24.07.2009, 07:22
quelle
4

Es wird nicht fehlgeschlagen <Tag/> ist nur eine Verknüpfung für <Tag></Tag>

    
RaYell 24.07.2009 07:21
quelle
2

Ihr Code sollte lauten:

%Vor%

Dies vermeidet Ressourcenlecks im Falle von Ausnahmen und verwendet den richtigen Weg, um einen XmlReader zu erstellen (seit .NET 2.0).

    
John Saunders 24.07.2009 13:22
quelle
0

Lassen Sie das hier für den Fall, dass jemand es braucht; denn keine der obigen Antworten löste es für mich oder schien übertrieben zu sein.

%Vor%

Der Trick bestand darin, die XmlWriterSettings.Indent = true festzulegen und sie dem XmlWriter .

Bearbeiten:

Alternativ können Sie auch

verwenden %Vor%

anstelle eines XmlWriterSettings.

    
PhoenixDev 09.09.2015 07:56
quelle