Heim > Backend-Entwicklung > C++ > Wie entferne ich effizient XML-Namespaces in C#?

Wie entferne ich effizient XML-Namespaces in C#?

Linda Hamilton
Freigeben: 2025-01-23 22:51:11
Original
614 Leute haben es durchsucht

How to Efficiently Remove XML Namespaces in C#?

XML-Element-Namespace effizient in C# entfernen

Das Entfernen des Namespace eines XML-Elements ist eine häufige Aufgabe und C# bietet eine unkomplizierte Lösung.

Schnittstellendefinition

Definieren Sie zunächst eine Schnittstelle zur Implementierung der erforderlichen Funktionalität:

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

Beispiel-XML-Daten

Die folgenden XML-Daten werden als Beispiel verwendet:

<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>
Nach dem Login kopieren

Rekursive Funktion

Die Kernfunktion zum Entfernen von Namespaces ist rekursiv und funktioniert wie folgt:

<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>
Nach dem Login kopieren

Es iteriert die XML-Struktur, entfernt Namespaces und behält Elementinhalte und -attribute bei.

Anwendung

Mithilfe der zuvor definierten Schnittstelle und Funktion können Sie die Funktion zum Entfernen des XML-Namespace wie folgt aufrufen:

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

Ergebnisse ausgeben

Endergebnis nach dem Entfernen des Namespace aus dem Beispiel-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>
Nach dem Login kopieren

Fazit

Mit den XElement-Klassen und der rekursiven Funktionalität von C# können Sie Namespaces effektiv aus XML-Dokumenten entfernen und so die Manipulation und Verarbeitung von Daten erleichtern.

Das obige ist der detaillierte Inhalt vonWie entferne ich effizient XML-Namespaces in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage