Compartir a través de


Conservar espacios en blanco mientras se carga o se analiza el XML

Actualización: November 2007

En este tema se describe cómo controlar el comportamiento de los espacios en blanco de LINQ to XML.

Un caso muy común es aquel en el que se leen datos XML con sangría, se crea un árbol XML en memoria sin ningún nodo de texto con espacios en blanco (es decir, sin preservar los espacios en blanco), se realizan ciertas operaciones sobre el XML y éste se guarda con sangría. Si se serializa el código XML con formato, sólo se preservan en el árbol XML aquellos espacios en blanco más significativos. Éste es el comportamiento predeterminado para LINQ to XML.

Otro caso muy común es aquel en el que se lee y se modifica código XML en el que se ha aplicado sangría de forma intencionada. Es posible que no desee modificar esta sangría de ninguna forma. Para hacerlo en LINQ to XML, puede preservar los espacios en blanco a la hora de cargar o analizar el XML y si deshabilita el formato cuando serialice el XML.

En este tema se describe el comportamiento de espacios en blanco de métodos que rellenan los árboles XML. Para obtener información acerca del control de espacios en blanco mientras se serializan los árboles XML, vea Preservar los espacios en blanco durante la serialización.

Comportamiento de métodos que rellenan árboles XML

Los siguientes métodos de las clases XElement y XDocument rellenan un árbol XML. Puede rellenar un árbol XML desde un archivo, un TextReader, un XmlReader o una cadena:

Si el método no toma LoadOptions como argumento, el método no conservará espacios en blanco no significativos.

En la mayoría de casos, si el método toma LoadOptions como argumento, opcionalmente se pueden conservar los espacios en blanco no significativos como nodos de texto en el árbol XML. No obstante, si el método carga XML desde XmlReader, XmlReader determina si los espacios en blanco se conservan. Establecer PreserveWhitespace no tendrá ningún efecto.

Con estos métodos, si se conservan los espacios en blanco, se inserta un espacio en blanco insignificante en el árbol XML como nodos XText. Si no se conservan los espacios en blanco, entonces no se insertan los nodos de texto.

Puede crear un árbol XML mediante XmlWriter. Los nodos escritos en XmlWriter se rellenan en el árbol. No obstante, al crear un árbol XML usando este método se conservan todos los nodos, independientemente de si el nodo es o no un espacio en blanco, o si el espacio en blanco es o no significativo.

Vea también

Conceptos

Analizar XML