supprimer le codage de xmlserializer
J'utilise le code suivant pour créer un document xml -
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
new XmlSerializer(typeof(docket)).Serialize(Console.Out, i, ns);
cela fonctionne très bien dans la création du fichier xml de noms sans attributs. je voudrais aussi ne pas avoir d'encodage attribut dans l'élément racine, mais je ne peux pas trouver un moyen de le faire. Quelqu'un a une idée si cela peut être fait?
Grâce
OriginalL'auteur czuroski | 2011-06-09
Vous devez vous connecter pour publier un commentaire.
Vieille réponse enlevée et mise à jour avec la nouvelle solution:
De supposer que c'est ok pour supprimer la déclaration xml complètement, car cela ne fait pas beaucoup de sens sans l'attribut de codage:
Je suis d'accord et ont modifié en un meilleur. 😉
Qui fonctionne parfaitement - Grâce.
OriginalL'auteur Achim
Pour supprimer encodage d'en-tête XML passer TextWriter avec null codant pour XmlSerializer:
Explication
XmlTextWriter utilise le codage de TextWriter passé dans le constructeur:
Il utilise ce codage lors de la génération de XML:
À l'aide d'un
encoding
qui estnull
est un bon moyen d'y parvenir. Note que, selon l'article 2.8 de l'XML 1.1 Recommandation il est parfaitement légal de ne pas inclure une déclaration de codage à l'intérieur de la déclaration XML. Dans ce cas, la déclaration XML ressemble:<?xml version="1.1"?>
(ou<?xml version="1.0"?>
pour XML 1.0).OriginalL'auteur Petr Havlicek
Je m'intéresse à la même chose. Quelqu'un a une réponse? J'ai utilisé: StringBuilder.ToString().Replace("<", "<").Replace(">", ">"); parce que j'ai eu un code html qui je voulais pas codé.
OriginalL'auteur kroehre
De crédit à ce blog pour m'aider avec mon code
http://blog.dotnetclr.com/archive/2008/01/29/removing-declaration-and-namespaces-from-xml-serialization.aspx
voici ma solution, même idée, mais dans VB.NET et un peu plus clair à mon avis.
OriginalL'auteur taylor michels