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

Bolehkah XmlSerializer Mensiri Rentetan sebagai Bahagian CDATA?

DDD
Lepaskan: 2025-01-13 07:46:40
asal
742 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan