Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menghapuskan Atribut Ruang Nama daripada Objek Bersiri XML dalam .NET?

Bagaimana untuk Menghapuskan Atribut Ruang Nama daripada Objek Bersiri XML dalam .NET?

Patricia Arquette
Patricia Arquetteasal
2025-01-02 18:39:39561semak imbas

How to Eliminate Namespace Attributes from XML Serialized Objects in .NET?

Menghapuskan Atribut Ruang Nama semasa Pensirilan Objek dalam .NET

Apabila mensiri objek kepada XML dalam .NET, adalah perkara biasa untuk menemui ruang nama yang tidak diingini atribut dalam dokumen yang terhasil, seperti "xmlns:xsi" dan "xmlns:xsd." Atribut ini boleh mengeruhkan output dan mengganggu pemprosesan selanjutnya.

Satu pendekatan untuk mengalih keluar ruang nama ini ialah dengan menentukan sifat XmlWriterSettings.OmitXmlDeclaration sebagai benar. Walau bagaimanapun, kaedah ini sahaja mungkin tidak mencukupi, kerana ia hanya menindas baris pengisytiharan XML tetapi bukan atribut ruang nama.

Untuk menangani isu ini dan mengalih keluar ruang nama xsi dan xsd secara eksplisit, kami boleh menggunakan kelas XmlSerializerNamespaces. Kelas ini membolehkan kami menentukan pemetaan ruang nama tersuai. Dalam kes kami, kami boleh mencipta contoh XmlSerializerNamespaces dan menambah rentetan kosong sebagai kedua-dua kunci dan nilai, dengan berkesan mengatasi mana-mana ruang nama yang ditakrifkan sebelum ini.

Contoh Kod:

...
XmlSerializer s = new XmlSerializer(objectToSerialize.GetType());
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
s.Serialize(xmlWriter, objectToSerialize, ns);

Dengan menentukan rentetan kosong untuk kedua-dua kunci dan nilai dalam XmlSerializerNamespaces, kami mengalih keluar semua ruang nama pengisytiharan daripada dokumen XML bersiri, menghasilkan output yang lebih bersih dengan hanya tag mesej yang diingini:

<message>
...
</message>

Atas ialah kandungan terperinci Bagaimana untuk Menghapuskan Atribut Ruang Nama daripada Objek Bersiri XML dalam .NET?. 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