Поделиться через


Сохранение пробелов при сериализации

В этом разделе описывается управление пробелами при сериализации XML-дерева.

Типичный сценарий состоит в чтении XML с отступами, создании XML-дерева в памяти без текстовых узлов с пробелами (то есть без сохранения пробелов), выполнении определенных операций над XML и сохранении XML с отступами. При сериализации XML с форматированием сохраняются только значимые пробелы XML-дерева. Это поведение LINQ to XML по умолчанию.

Другой типичный сценарий заключается в чтении и изменении XML с уже существующими преднамеренными отступами. Эти отступы ни в коем случае изменять нельзя. Для этого в LINQ to XML можно сохранить пробелы при загрузке или синтаксическом анализе XML и отключить форматирование при сериализации XML.

Управление пробелами в методах сериализации XML-деревьев

Следующие методы классов XElement и XDocument позволяют сериализовать XML-дерево. Можно сериализовать XML-дерево в файл, объект TextReader или объект XmlReader. Метод ToString позволяет сериализовать в строку.

Если метод не берет объект SaveOptions в качестве аргумента, то этот метод отформатирует (расставит отступы) сериализованный XML. В этом случае все незначащие пробелы в XML-дереве удаляются.

Если метод берет объект SaveOptions в качестве аргумента, то можно указать, что этот метод не должен форматировать (расставлять отступы) сериализованный XML. В этом случае все незначащие пробелы в XML-дереве сохраняются.

См. также

Основные понятия

Сериализация XML-деревьев