Ich verwende XmlTextWriter
und seine WriteElementString
Methode, zum Beispiel:
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?
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%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).
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 . Alternativ können Sie auch anstelle eines XmlWriterSettings. Bearbeiten:
Tags und Links c# xml xmltextwriter writeelementstring