2010-08-10 5 views
2

Pour une raison quelconque, mes XmlElements avec des espaces sont imprimés avec _x0020 à la place de l'espace.XmlSerializer remplace les espaces par 0x0020 (la valeur hexadécimale)

Par exemple,

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

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

Répondre

5

C'est la manière du sérialiseur XML de gérer le fait que vous avez spécifié un nom d'élément illégal. Les éléments XML ne peuvent pas contenir d'espaces dans leurs noms, ce qui fait que l'espace peut être détruit plus tard.

Je vous conseille de ne pas inclure d'espaces en premier lieu. Par curiosité, qu'avez-vous s'attendre à la sortie à être? Vous attendiez-vous à:

<The Total> 
    20 
</The Total> 

?

+0

Oui c'est ce que je voulais. Si ce n'est pas la norme XML, alors c'est tout ce que je devais savoir. – codersarepeople

+0

@codersarepeople: Yup, ce serait XML non valide. –

Questions connexes