[C#] XML Encoding von Umlauten

kaepten

Lt. Commander
Registriert
Apr. 2005
Beiträge
1.541
Hallo

Ich grüble gerade über die encodierung von Umlauten in XmlDocument Objekten von .NET.

Es geht darum, dass ich im Xml den Umlaut codiert haben möchte: ein ä also "& #228;" sein soll.

Wenn ich ein XML über XmlDocument.Load reinlese, habe ich direkt nicht mehr die encodierte Zeichenfolge, sondern schon wirklich das "ä". Wenn ich einem XmlNode den String "& #228;" zuweise, dann hat dieser Node spätestens dann im gespeicherten XML den Wert: "&#228";

Wie kann ich das Xml einlesen und speichern, ohne dass es mir eine automatische de- encodierung auf der Ebene des XmlDocument Objektes macht?

Bin über jeden Tipp dankbar!
kaepten
 
Das Encoding würde ich auf keinen Fall anfassen. Lass das wie es ist.

Machs genau so wie dus hast:
ä -> & #228; -> &#228

Wenn du die XML wieder Deserialisierst, sollte das &#228 wieder zu &#228 werden. Das kannst du dann wieder per replace zu ä umwandeln:
&#228 -> & #228; -> ä
 
Hi und danke für die Antwort.

Ich würde es nicht mal HTML-encodieren, wenn es nach mir ginge. Es ist nur so, dass die "Vorlage" es eigenartigerweise so encodiert hat und es nach meiner Bearbeitung wieder so ausschauen sollte. Ich habe mit dem deserialisieren absolut keine Probs, das ginge sogar mit beiden Varianten.

Ich kann das also nicht ändern, es ist auch nicht meine Anwendung die das XML wieder liest, ich sollte nur an einem bestehenden Ergänzungen vornehmen und dann es so speichern wie es zuvor war. Das XmlDocument Object aber ändert mir sämtliche codes zurück in Umlaute und Zeilenumbrüche.

Also ich werds wohl so machen (müssen) dass ich abschliessend nochmals Search/Replace in "normalen" Textmodus mache...
 
Wobei du nur, den Schritt: ä -> & #228; machen musst. & #228; -> &#228 sollte der XML Serializer machen.
 
Zurück
Oben