Как получить значение XElement с пробелами? - PullRequest
4 голосов
/ 22 сентября 2011

У меня есть следующий XElement:

<title>
  <bold>Foo</bold>
  <italic>Bar</italic>
</title>

Когда я получаю свойство Value, возвращается FooBar без пробела. Как это исправить?

Ответы [ 2 ]

8 голосов
/ 22 сентября 2011

По определению, Value элемента <title> является объединением всего текста в этом элементе. По умолчанию пробелы между элементами и их содержимым игнорируются, поэтому он выдает «FooBar». Вы можете указать, что хотите сохранить пробелы:

var element = XElement.Parse(xml, LoadOptions.PreserveWhitespace);

Однако он сохранит все пробелов, включая перевод строки и отступ. В вашем XML есть перевод строки и два пробела между "Foo" и "Bar"; как можно догадаться, что вы хотите оставить только один пробел?

0 голосов
/ 22 сентября 2011

Из документации для свойства Value класса XElement :

Получает или задает составное текстовое содержимое этого элемента.

Учитывая ваш пример, такое поведение ожидается. Если вам нужны пробелы, вам придется предоставить логику для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...