Preservar o espaço em branco ao serializar (LINQ to XML)

Este artigo descreve como controlar o espaço em branco para serializar uma árvore XML.

Um cenário comum é ler o XML recuado, criar uma árvore XML na memória sem nenhum nó de texto de espaço em branco (isto é, não preservar espaço em branco), execute algumas operações no XML e, em seguida, salvar o XML com recuo. Quando você serializa o XML com formatação, somente os espaços em branco significativos na árvore XML são preservados. Esse é o comportamento padrão para LINQ to XML.

Outro cenário comum é ler e modificar XML que já foi recuado intencionalmente. Você pode não querer modificar este recuo de nenhuma forma. Para fazer isso no LINQ to XML, você preserva o espaço em branco quando você carregar ou analisar XML e desabilita a formatação quando você serializa XML.

Comportamento de espaço em branco de métodos que serializam árvores XML

Os seguintes métodos nas classes de XElement e de XDocument serialize uma árvore XML. Você pode serializar uma árvore XML para um arquivo, um TextReader, ou um XmlReader. O método de ToString serializa a uma cadeia de caracteres.

Se o método não utiliza SaveOptions como um argumento, o método formatará (recuo) o XML serializável. Nesse caso, qualquer espaço em branco irrisória na árvore XML é descartado.

Se o método utiliza SaveOptions como um argumento, então você pode especificar que o formato de método não (corte XML serializável.) Nesse caso, qualquer espaço em branco na árvore XML é preservada.