XmlSerializer заменяет пробелы на 0x0020 (шестнадцатеричное значение).

По какой-то причине мои XmlElements с пробелами в них печатаются с _x0020 вместо пробела.

Например,

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

превращается в <The_0x0020_Total>, когда я его распечатываю. Я использую TextWriter для вывода, затем я использую XmlSerializer.Serialize для печати в файл, но он не работает.


person codersarepeople    schedule 10.08.2010    source источник


Ответы (1)


Это способ XML-сериализатора обрабатывать тот факт, что вы указали недопустимое имя элемента. XML-элементы не могут иметь пробелов в своих именах, поэтому он использует пробел таким образом, чтобы его можно было восстановить позже.

Я бы посоветовал вам не включать пробелы в первую очередь.

Ради интереса, каким вы ожидали результат? Вы ожидали:

<The Total>
  20
</The Total>

?

person Jon Skeet    schedule 10.08.2010
comment
Да, это то, что я хотел. Если это не соответствует стандарту XML, то это все, что мне нужно было знать. - person codersarepeople; 10.08.2010