Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Alih Keluar Semua Ruang Nama daripada XML Bersiri dalam .NET?

Bagaimana untuk Alih Keluar Semua Ruang Nama daripada XML Bersiri dalam .NET?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-04 04:23:43843semak imbas

How to Remove All Namespaces from Serialized XML in .NET?

Mengalih keluar Semua Ruang Nama daripada XML Bersiri dalam .NET

Dalam proses menyerikan objek ke dalam XML, adalah perkara biasa untuk menemui ruang nama seperti sebagai "xsi" dan "xsd" dilampirkan pada dokumen bersiri. Ruang nama ini boleh menjadi punca kekacauan dan kerumitan.

Coretan kod memberikan percubaan untuk meninggalkan ruang nama XML dengan menetapkan bendera OmitXmlDeclaration. Walau bagaimanapun, XML yang terhasil masih termasuk ruang nama xsi dan xsd. Untuk mengalih keluar sepenuhnya ruang nama ini, langkah tambahan diperlukan.

Penyelesaian terletak pada mentakrifkan objek XmlSerializerNamespaces kosong dan menghantarnya kepada kaedah Serialize:

...
XmlSerializer s = new XmlSerializer(objectToSerialize.GetType());
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");  // Add an empty namespace for each prefix
s.Serialize(xmlWriter, objectToSerialize, ns);

Kod ini menambah ruang nama kosong ke dokumen XML, dengan berkesan mengalih keluar sebarang awalan atau pengisytiharan ruang nama. Akibatnya, dokumen bersiri akan mengandungi tag tanpa sebarang atribut ruang nama:

<message>
 ...
</message>

Atas ialah kandungan terperinci Bagaimana untuk Alih Keluar Semua Ruang Nama daripada XML Bersiri 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