2010-12-06 9 views
16

Je me demande comment ajouter un saut de ligne pour chaque élément lorsque vous utilisez XmlSerializer?Comment ajouter un saut de ligne lors de l'utilisation de XmlSerializer

Exemple de code:

XmlSerializer serializer = new XmlSerializer(typeof(xxx)); 
using (XmlWriter xmlWriter = XmlWriter.Create("test.xml") 
{ 
    serializer.Serialize(xmlWriter, xxx); 
} 
+0

Pourquoi? Un ordinateur ne se soucie pas des sauts de ligne. – leppie

+5

@leppie: Cependant, une puissance humaine. C'est la seule raison d'utiliser XML de toute façon - sinon vous pourriez simplement utiliser des données binaires. –

Répondre

26

Lors de la création du XmlWriter, passer dans un objet XmlWriterSettings avec Indent ensemble à true.

var xmlWriterSettings = new XmlWriterSettings() { Indent = true }; 
XmlSerializer serializer = new XmlSerializer(typeof(xxx)); 
using (XmlWriter xmlWriter = XmlWriter.Create("test.xml", xmlWriterSettings) 
{ 
    serializer.Serialize(xmlWriter, xxx); 
} 
+1

Ou si vous utilisez XmlTextWriter, définissez "obj.Formatting = Formatting.Indented" après la construction – dlchambers