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

Bagaimana untuk Mengeluarkan Ruang Nama dengan Cekap dari Dokumen XML Menggunakan C#?

Linda Hamilton
Lepaskan: 2025-01-23 22:31:10
asal
653 orang telah melayarinya

How to Efficiently Remove Namespaces from XML Documents Using C#?

Kosongkan ruang nama dengan mudah dalam dokumen XML menggunakan C#

Dalam pemprosesan XML, ruang nama sering menjadi pening kepala, mengganggu data seperti tetamu yang tidak diundang. Mengalih keluar ruang nama yang berlebihan ini boleh menjadi rumit, tetapi dengan kuasa C# pada .NET 3.5 SP1, anda boleh mengucapkan selamat tinggal kepada ruang nama dengan mudah.

Untuk membantu anda melaksanakan pembersihan ruang nama bagi dokumen XML, kami menyediakan penyelesaian yang mudah dan cekap. Fungsi RemoveAllNamespaces() berasaskan antara muka menyediakan cara yang mudah dan elegan untuk mengalih keluar ruang nama daripada dokumen XML.

RemoveAllNamespaces() Penjelasan terperinci tentang fungsi

Inti penyelesaian ialah fungsi RemoveAllNamespaces() padat, yang menerima dokumen XML sebagai input dan mengalih keluar semua ruang nama:

<code class="language-csharp">public static string RemoveAllNamespaces(string xmlDocument)
{
    XElement xmlDocumentWithoutNs = RemoveAllNamespaces(XElement.Parse(xmlDocument));

    return xmlDocumentWithoutNs.ToString();
}</code>
Salin selepas log masuk

Fungsi rekursif teras asas RemoveAllNamespaces() mengendalikan pengangkatan berat:

<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

Contoh dan hasil XML

Untuk menggambarkan kuasa penyelesaian ini, mari lihat contoh XML yang mengandungi ruang nama:

<code class="language-xml"><?xml version="1.0" encoding="utf-16"?>
<ArrayOfInserts xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <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" />
    <type3 xmlns="http://schema.peters.com/doc_353/1/Types">
      <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

Selepas memanggil fungsi RemoveAllNamespaces(), dokumen XML akan ditukar dan semua ruang nama akan dialih keluar:

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

Ringkasan

Menggunakan penyelesaian RemoveAllNamespaces() kami, anda kini mempunyai cara yang bersih dan boleh dipercayai untuk mengalih keluar ruang nama daripada dokumen C# XML. Sama ada anda berurusan dengan elemen tunggal atau hierarki kompleks, kod kami memastikan data XML anda bebas ruang nama.

Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Ruang Nama dengan Cekap dari Dokumen XML Menggunakan 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