Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengeluarkan Ruang Nama XML dengan Cekap dalam C#?

Bagaimana untuk Mengeluarkan Ruang Nama XML dengan Cekap dalam C#?

Linda Hamilton
Linda Hamiltonasal
2025-01-23 22:51:11553semak imbas

How to Efficiently Remove XML Namespaces in C#?

Alih keluar ruang nama elemen XML dengan cekap dalam C#

Mengalih keluar ruang nama elemen XML ialah tugas biasa dan C# menyediakan penyelesaian yang mudah.

Takrifan antara muka

Pertama, tentukan antara muka untuk melaksanakan fungsi yang diperlukan:

<code class="language-csharp">public interface IXMLUtils
{
    string RemoveAllNamespaces(string xmlDocument);
}</code>

Contoh data XML

Data XML berikut digunakan sebagai contoh:

<code class="language-xml"><?xml version="1.0" encoding="utf-16"?><arrayofinserts xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><insert><offer xmlns="http://schema.peters.com/doc_353/1/Types">0174587</offer><type2 xmlns="http://schema.peters.com/doc_353/1/Types">014717</type2><supplier xmlns="http://schema.peters.com/doc_353/1/Types">019172</supplier><id_frame xmlns="http://schema.peters.com/doc_353/1/Types"></id_frame><type3 xmlns="http://schema.peters.com/doc_353/1/Types"><type2></type2><main>false</main></type3><status xmlns="http://schema.peters.com/doc_353/1/Types">Some state</status></insert></arrayofinserts></code>

Fungsi rekursif

Fungsi teras untuk mengalih keluar ruang nama adalah rekursif dan berfungsi seperti berikut:

<code class="language-csharp">private static XElement RemoveAllNamespaces(XElement xmlDocument)
{
    if (!xmlDocument.HasElements)
    {
        XElement xElement = new XElement(xmlDocument.Name.LocalName);
        xElement.Value = xmlDocument.Value;

        foreach (XAttribute attribute in xmlDocument.Attributes())
            xElement.Add(attribute);

        return xElement;
    }
    return new XElement(xmlDocument.Name.LocalName, xmlDocument.Elements().Select(el => RemoveAllNamespaces(el)));
}</code>

Ia mengulangi struktur XML, mengalih keluar ruang nama dan mengekalkan kandungan elemen dan atribut.

Cara menggunakan

Menggunakan antara muka dan fungsi yang ditakrifkan sebelum ini, anda boleh memanggil fungsi penyingkiran ruang nama XML seperti ini:

<code class="language-csharp">string result = RemoveAllNamespaces(xmlDocument);</code>

Hasil keluaran

Hasil akhir selepas mengalih keluar ruang nama daripada contoh XML:

<code class="language-xml"><?xml version="1.0" encoding="utf-16"?><arrayofinserts><insert><offer>0174587</offer><type2>014717</type2><supplier>019172</supplier><id_frame></id_frame><type3><type2></type2><main>false</main></type3><status>Some state</status></insert></arrayofinserts></code>

Kesimpulan

Menggunakan kelas XElement C# dan fungsi rekursif, anda boleh mengalih keluar ruang nama daripada dokumen XML dengan berkesan, menjadikannya lebih mudah untuk memanipulasi dan memproses data.

Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Ruang Nama XML dengan Cekap dalam C#?. 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