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

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

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-04 04:23:43802parcourir

How to Remove All Namespaces from Serialized XML in .NET?

Suppression de tous les espaces de noms du XML sérialisé dans .NET

Dans le processus de sérialisation d'un objet en XML, il est courant de rencontrer des espaces de noms tels comme « xsi » et « xsd » ajoutés au document sérialisé. Ces espaces de noms peuvent être une source d'encombrement et de complexité.

L'extrait de code fournissait des tentatives pour omettre les espaces de noms XML en définissant l'indicateur OmitXmlDeclaration. Cependant, le XML résultant inclut toujours les espaces de noms xsi et xsd. Pour supprimer complètement ces espaces de noms, des étapes supplémentaires sont nécessaires.

La solution consiste à définir un objet XmlSerializerNamespaces vide et à le transmettre à la méthode Serialize :

...
XmlSerializer s = new XmlSerializer(objectToSerialize.GetType());
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");  // Add an empty namespace for each prefix
s.Serialize(xmlWriter, objectToSerialize, ns);

Ce code ajoute un espace de noms vide à le document XML, supprimant ainsi tous les préfixes ou déclarations d'espace de noms. En conséquence, le document sérialisé contiendra un balise sans aucun attribut d'espace de noms :

<message>
 ...
</message>

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