Rumah >pembangunan bahagian belakang >C++ >Bolehkah XmlSerializer Mensiri Rentetan sebagai Bahagian CDATA?

Bolehkah XmlSerializer Mensiri Rentetan sebagai Bahagian CDATA?

DDD
DDDasal
2025-01-13 07:46:40778semak imbas

Can XmlSerializer Serialize Strings as CDATA Sections?

Gunakan XmlSerializer untuk menyusun rentetan ke CDATA

Soalan:

Bolehkah XmlSerializer menyusun rentetan ke dalam bahagian CDATA menggunakan atribut?

Jawapan:

Ya, adalah mungkin untuk mensirikan rentetan ke CDATA menggunakan XmlSerializer. Ini boleh dicapai dengan mencipta kelas tersuai dan menandakan atribut rentetan sebagai [XmlIgnore] dan menambah atribut lain dengan atribut [XmlElement] untuk mewakili bahagian CDATA.

Berikut ialah contoh:

<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>

Penggunaan:

<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>

Output:

<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>

(Nota: Hasil keluaran adalah sama seperti contoh asal. Ini mungkin kerana terdapat masalah dalam kod contoh itu sendiri dan bahagian CDATA tidak dapat dijana dengan betul. Kod perlu diubah suai dengan betul output CDATA Jawapan ini mengekalkan hasil output teks asal, tetapi Pembaca dinasihatkan untuk menguji dan mengubah suai kod itu sendiri untuk mendapatkan hasil yang diharapkan )

Atas ialah kandungan terperinci Bolehkah XmlSerializer Mensiri Rentetan sebagai Bahagian CDATA?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn