2010-09-03 3 views
0

Я пытаюсь написать код C# для чтения данных из XML-файла.Странные символы, возвращаемые при использовании Linq в XML

Я думал, что попробую Linq для XML, чтобы это сделать.

Однако значения, которые я вытягиваю, окружены символами типа «\ n \ t \ t \ t».

Может ли кто-нибудь объяснить, почему я получаю эти персонажи и как я могу их удалить?

Спасибо.

ответ

1

XML был задуман как стандарт документа. Однако в самые ранние дни он был кооптирован как язык представления данных. Он втянулся в эту роль, но был лучше, чем что-либо еще, что было вокруг в то время, поэтому он стал кротким для всех видов проблем с построением структуры данных. Проблемы с пробелами, пробегающими ваши данные, являются прямым результатом документального наследия XML.

Символы, которые вы видите, представляют собой пробелы, содержащиеся в элементе, вместе с интересующим вас содержимым. Простейшим решением, если это вариант, является удаление их из исходного XML-файла. В противном случае большинство процессоров XML имеют какой-то механизм для устранения окружающих пробелов. Однако я не знаю, какая поддержка LINQ-to-XML для этого.

После быстрой загрузки Google при загрузке XML для обработки LINQ появляется опция preserve whitespace. Возможно, это было указано в вызове Load или Parse.

+0

Спасибо за ваш ответ. Я пробовал как LoadOptions.PreserveWhitespace, так и LoadOptions.None, но не решает эту проблему. Действительно ли ответ не имеет отступов в файле XML? – Matt

+0

Это может помочь увидеть XML-файл или соответствующий фрагмент. –

+0

Нет проблем - вот содержание: \t \t \t \t \t \t TextBox \t \t \t \t \t \t \t Forename \t \t \t \t \t \t \t Имя, отчество: \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t TextBox \t \t \t \t \t \t \t ФАМИЛИЯ \t \t \t \t \t \t \t Фамилия: \t \t \t \t \t \t \t \t \t \t Matt

Смежные вопросы