Maison >développement back-end >C++ >Comment supprimer les espaces de noms du XML sérialisé dans .NET ?

Comment supprimer les espaces de noms du XML sérialisé dans .NET ?

DDD
DDDoriginal
2025-01-02 17:34:39845parcourir

How to Remove Namespaces from Serialized XML in .NET?

Élimination des espaces de noms du XML sérialisé dans .NET

Lors de la sérialisation d'objets dans .NET, le XML résultant inclut souvent des espaces de noms, tels que "xsi " et " xsd ". Pour omettre ces espaces de noms et obtenir un document sérialisé plus propre, une approche alternative est nécessaire.

Approche alternative :

Au lieu du code fourni dans la description du problème, vous pouvez utiliser la classe XmlSerializerNamespaces pour gérer explicitement les espaces de noms pendant la sérialisation. Cela vous permet de définir un mappage d'espace de noms personnalisé, comme le montre le code suivant :

...
XmlSerializer s = new XmlSerializer(objectToSerialize.GetType());
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", ""); // Add an empty namespace mapping to remove all namespaces
s.Serialize(xmlWriter, objectToSerialize, ns);

En ajoutant un mappage d'espace de noms vide, vous supprimez efficacement toutes les déclarations d'espace de noms du document XML sérialisé. Le résultat est le balise sans aucun attribut d'espace de noms :

<message>
...
</message>

Cette approche offre plus de contrôle sur le XML sérialisé et garantit qu'aucun espace de noms indésirable n'est inclus dans la sortie.

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!

Déclaration:
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