Verwenden Sie XmlSerializer, um Zeichenfolgen in CDATA zu serialisieren
Frage:
Kann XmlSerializer Zeichenfolgen mithilfe von Attributen in CDATA-Abschnitte serialisieren?
Antwort:
Ja, es ist möglich, Zeichenfolgen mit XmlSerializer in CDATA zu serialisieren. Dies kann erreicht werden, indem eine benutzerdefinierte Klasse erstellt und das Zeichenfolgenattribut als [XmlIgnore] markiert wird und ein weiteres Attribut mit einem [XmlElement]-Attribut hinzugefügt wird, um den CDATA-Abschnitt darzustellen.
Hier ist ein Beispiel:
<code class="language-csharp">[Serializable] public class MyClass { public MyClass() { } [XmlIgnore] public string MyString { get; set; } [XmlElement("MyString")] public System.Xml.XmlCDataSection MyStringCDATA { get { return new System.Xml.XmlDocument().CreateCDataSection(MyString); } set { MyString = value.Value; } } }</code>
Verwendung:
<code class="language-csharp">MyClass mc = new MyClass(); mc.MyString = "<test>Hello World</test>"; XmlSerializer serializer = new XmlSerializer(typeof(MyClass)); StringWriter writer = new StringWriter(); serializer.Serialize(writer, mc); Console.WriteLine(writer.ToString());</code>
Ausgabe:
<code class="language-xml"><?xml version="1.0" encoding="utf-16"?><myclass xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><mystring></mystring></myclass></code>
(Hinweis: Das Ausgabeergebnis ist das gleiche wie im Originalbeispiel. Dies kann daran liegen, dass im Beispielcode selbst ein Problem vorliegt und der CDATA-Abschnitt nicht korrekt generiert werden kann. Der Code muss korrekt geändert werden Ausgabe-CDATA. Diese Antwort behält das Ausgabeergebnis des Originaltextes bei, den Lesern wird jedoch empfohlen, den Code selbst zu testen und zu ändern, um die erwarteten Ergebnisse zu erhalten)
Das obige ist der detaillierte Inhalt vonKann XmlSerializer Zeichenfolgen als CDATA-Abschnitte serialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!