Maison > développement back-end > C++ > Comment supprimer efficacement les espaces de noms XML en C# ?

Comment supprimer efficacement les espaces de noms XML en C# ?

Linda Hamilton
Libérer: 2025-01-23 22:51:11
original
549 Les gens l'ont consulté

How to Efficiently Remove XML Namespaces in C#?

Supprimer efficacement l'espace de noms des éléments XML en C#

Supprimer l'espace de noms d'un élément XML est une tâche courante, et C# fournit une solution simple.

Définition de l'interface

Tout d'abord, définissez une interface pour implémenter la fonctionnalité requise :

<code class="language-csharp">public interface IXMLUtils
{
    string RemoveAllNamespaces(string xmlDocument);
}</code>
Copier après la connexion

Exemple de données XML

Les données XML suivantes sont utilisées à titre d'exemple :

<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>
Copier après la connexion

Fonction récursive

La fonction principale de suppression des espaces de noms est récursive et fonctionne comme suit :

<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>
Copier après la connexion

Il itère la structure XML, supprime les espaces de noms et préserve le contenu et les attributs des éléments.

Comment utiliser

En utilisant l'interface et la fonction définies précédemment, vous pouvez appeler la fonction de suppression de l'espace de noms XML comme ceci :

<code class="language-csharp">string result = RemoveAllNamespaces(xmlDocument);</code>
Copier après la connexion

Résultats de sortie

Résultat final après suppression de l'espace de noms de l'exemple 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>
Copier après la connexion

Conclusion

Grâce aux classes XElement et aux fonctionnalités récursives de C#, vous pouvez supprimer efficacement les espaces de noms des documents XML, ce qui facilite la manipulation et le traitement des données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal