[C#] Leere Elemente als shorttag speichern

mki_germo

Erfahrenes Mitglied
Hallo miteinander,

ich stehe vor folgendem Problem:
In einer Anwendung von mir wird eine XML-Datei anhand eines XML-Templates befüllt. Das Template selber gibt dabei nur die Tags vor, die Befüllung erfolgt über ein Regelwerk. Elemente, für die kein Wert angegeben ist, werden dabei mit Leerstrings befüllt.

Dabei bin ich über folgendes Problem gestolpert. Die Elemente im Template liegen normalerweise als ShortTag vor (z.B. <kvnr />). Jedoch kann es vorkommen, das eben solche Element auch in der Langform, also mit Start- und Endtag (<kvnr></kvnr>) vorliegen. Wenn nun über die save-Methode mein aufbereitetes XML-Dokument speichere, dann passiert folgendes: in meiner Ausgabedatei steht auf einmal anstatt von

Code:
<kvnr></kvnr>

der Text

Code:
<kvnr>
</kvnr>

Vor dem schließenden Tag können dabei dann noch einige Tabs stehen, je nach Hirachieebene. Das führt in einer anderen Applikation zu folgendem Problem: Der dort verwendete Parser erkennt kvnr nicht mehr als leeres Element, sondern als Zeichenfolge Zeilenumbruch + n Tabs - was natürlich auf einen fehler läuft.

Um dieses Problem zu umgehen, würde ich gerne alle Tags, die keinen Wert haben, in Kurzschreibweise speichen, um dieses Problem zu umgehen. Allerdings finde ich irgendwie keinen Ansatz, wie ich das auch C# beibringen kann.

Kann mir jemand dabei weiterhelfen?
 

Neue Beiträge

Zurück