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
Lepaskan: 2025-01-23 22:51:11
asal
549 orang telah melayarinya

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

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

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

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

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

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan