Heim >Backend-Entwicklung >C++ >Wie entferne ich effizient XML-Namespaces in C#?
Das Entfernen des Namespace eines XML-Elements ist eine häufige Aufgabe und C# bietet eine unkomplizierte Lösung.
Definieren Sie zunächst eine Schnittstelle zur Implementierung der erforderlichen Funktionalität:
<code class="language-csharp">public interface IXMLUtils { string RemoveAllNamespaces(string xmlDocument); }</code>
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>
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>
Es iteriert die XML-Struktur, entfernt Namespaces und behält Elementinhalte und -attribute bei.
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>
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>
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!