Conservare gli spazi vuoti durante la serializzazione (LINQ to XML)

Questo articolo descrive come controllare gli spazi vuoti quando si serializza un albero XML.

In uno scenario comune viene letto il codice XML rientrato, viene creato un albero XML in memoria senza nodi di testo con spazi vuoti (ossia senza conservare gli spazi vuoti), vengono eseguite alcune operazioni sul codice XML e quindi il codice XML viene salvato senza rientro. Quando si serializza l'XML con la formattazione, nell'albero XML viene conservato solo lo spazio vuoto significativo. Questo è il comportamento predefinito per LINQ to XML.

In un altro scenario comune viene letto e modificato codice XML che è già stato intenzionalmente rientrato. È possibile che si desideri non modificare questo rientro in alcun modo. Per eseguire questa operazione in LINQ to XML, gli spazi vuoti vengono conservati quando si carica o si analizza il codice XML e si disabilita la formattazione quando si serializza l'XML.

Comportamento degli spazi vuoti dei metodi che serializzano alberi XML

I metodi seguenti delle classi XElement e XDocument serializzano un albero XML. È possibile serializzare un albero XML in un file, in un oggetto TextReader o in un oggetto XmlReader. Il metodo ToString consente di eseguire la serializzazione in una stringa.

Se il metodo non accetta SaveOptions come argomento, formatterà il codice XML serializzato, ovvero ne imposterà il rientro. In questo caso tutto lo spazio vuoto non significativo nella struttura ad albero XML verrà ignorato.

Se il metodo accetta SaveOptions come argomento, è possibile specificare di non formattare il codice XML serializzato, ovvero il metodo non ne imposterà il rientro. In questo caso tutto lo spazio vuoto nella struttura ad albero XML verrà mantenuto.