Ist es über ein Attribut möglich, eine Zeichenfolge mit dem .Net XmlSerializer als CDATA zu serialisieren?
c#
.net
xml-serialization
Jamesaharvey
quelle
quelle
CDataContent
wenn Sie nur XML lesen.XmlSerializer.Deserialize
verwandelt es automatisch in Text für Sie.Antworten:
quelle
Verwendung:
Ausgabe:
quelle
XmlDocument().CreateCDataSection(MyString ?? String.Empty);
Zusätzlich zu der von John Saunders veröffentlichten Methode können Sie einen XmlCDataSection direkt als Typ verwenden, obwohl es sich fast um dasselbe handelt:
quelle
In der zu serialisierenden Klasse:
Und die CData-Klasse:
quelle
In meinem Fall verwende ich gemischte Felder, einige CDATA, andere nicht, zumindest für mich funktioniert die folgende Lösung ....
Wenn ich immer das Feld Wert lese, erhalte ich den Inhalt, unabhängig davon, ob es sich um CDATA oder nur um einfachen Text handelt.
Besser spät als nie.
Prost
quelle
Ich hatte einen ähnlichen Bedarf, benötigte aber ein anderes Ausgabeformat - ich wollte ein Attribut auf dem Knoten, der die CDATA enthält. Ich habe mich von den oben genannten Lösungen inspirieren lassen, um meine eigenen zu erstellen. Vielleicht hilft es jemandem in der Zukunft ...
In dem zu serialisierenden übergeordneten Objekt habe ich die folgende Eigenschaft:
Ich erhalte folgende Ausgabe:
quelle
Diese Implementierung bietet die Möglichkeit, verschachtelte CDATA innerhalb der von Ihnen codierten Zeichenfolge zu verarbeiten (basierend auf der ursprünglichen Antwort von John Saunders).
Angenommen, Sie möchten die folgende Literalzeichenfolge in CDATA codieren:
Sie möchten, dass die resultierende Ausgabe ungefähr so aussieht:
Die folgende Implementierung wird Schleife über die Zeichenfolge, aufgeteilt Instanzen
...]]>...
in...]]
und>...
und separate CDATA - Abschnitte für jeden erstellen.quelle