2 votes

XmlSerializer remplace les espaces par 0x0020 (la valeur hexagonale)

Pour une raison quelconque, mes XmlElements contenant des espaces sont imprimés avec _x0020 à la place de l'espace.

Par exemple,

[XmlElement("The Total")]
public double total { get; set; }

se transforme en <The_0x0020_Total> lorsque je l'imprime. J'utilise un TextWriter pour la sortie, puis j'utilise XmlSerializer.Serialize pour imprimer dans un fichier, mais cela ne fonctionne pas.

5voto

Jon Skeet Points 692016

C'est la façon dont le sérialiseur XML gère le fait que vous avez spécifié un nom d'élément illégal. Les éléments XML ne peuvent pas avoir d'espaces dans leurs noms, donc il fusionne l'espace d'une manière qu'il sera capable de dé-munir plus tard.

Je vous conseille de ne pas inclure d'espaces en premier lieu.

Par curiosité, qu'avez-vous s'attendre à le résultat ? Vous attendiez-vous à.. :

<The Total>
  20
</The Total>

?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X