Maison > développement back-end > C++ > XmlSerializer peut-il sérialiser des chaînes en tant que sections CDATA ?

XmlSerializer peut-il sérialiser des chaînes en tant que sections CDATA ?

DDD
Libérer: 2025-01-13 07:46:40
original
742 Les gens l'ont consulté

Can XmlSerializer Serialize Strings as CDATA Sections?

Utilisez XmlSerializer pour sérialiser la chaîne en CDATA

Question :

XmlSerializer peut-il sérialiser des chaînes dans des sections CDATA à l'aide d'attributs ?

Réponse :

Oui, il est possible de sérialiser des chaînes en CDATA à l'aide de XmlSerializer. Ceci peut être réalisé en créant une classe personnalisée et en marquant l'attribut de chaîne comme [XmlIgnore], puis en ajoutant un autre attribut avec un attribut [XmlElement] pour représenter la section CDATA.

Voici un exemple :

<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>
Copier après la connexion

Utilisation :

<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>
Copier après la connexion

Sortie :

<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>
Copier après la connexion

(Remarque : le résultat de sortie est le même que celui de l'exemple d'origine. Cela peut être dû au fait qu'il y a un problème dans l'exemple de code lui-même et que la section CDATA ne peut pas être générée correctement. Le code doit être modifié pour fonctionner correctement. sortie CDATA. Cette réponse conserve le résultat de sortie du texte original, mais il est conseillé aux lecteurs de tester et de modifier eux-mêmes le code pour obtenir les résultats attendus)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal