Click here to Skip to main content
13,287,116 members (57,218 online)
Click here to Skip to main content
Add your own
alternative version

Tagged as


3 bookmarked
Posted 27 Sep 2010

C# - XML Writer Settings - Adding Line breaks/indentation

, 27 Sep 2010
Rate this:
Please Sign up or sign in to vote.
When dynamically creating XML documents, they appear just like a normal text file. This tip is to add line breaks and indentation automatically (I posted this in my blog a while ago)
I have seen that at times, we need to generate XML using code. This is in contrast to web services, wherein XML is generated by the compiler. In this post, I would like to give some pointers about creating XML files using C# - the "XmlWriter" class. Consider the following piece of code:

XmlWriter xml = XmlWriter.Create(@"c:\file.xml");

This would instantiate an XML writer and you could use various commands like xml.WriteStartElement(...), xml.WriteValue(..), xml.WriteEndElement() to construct the XML file dynamically. But there is a problem with this. A file created with such an instance of XmlWriter (XML) would look like this:

<?xml version="1.0" encoding="utf-8"?><Users><User><Name>user1</Name></User><User><Name>user2</Name></User><User><Name>user3</Name></User></Users>

But, we may expect the XML file to have some line breaks, indentation to make it readable to others. For this, we need to apply some XML writer settings using the "XmlWriterSettings" class as shown below:

XmlWriterSettings xmlWriterSettings = new XmlWriterSettings();
xmlWriterSettings.NewLineOnAttributes = true;
xmlWriterSettings.Indent = true;

Now the XmlWriter would be instantiated as:

XmlWriter xml = XmlWriter.Create(path, xmlWriterSettings);

With this, the XML generated would be indented, with line breaks as appropriate! Check out the final output after the additional settings:

<?xml version="1.0" encoding="utf-8"?>
  &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<Name>user1</Name>
  &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<Name>user2</Name>
  &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<Name>user3</Name>


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Karthik. A
Software Developer (Senior)
United States United States
Just another passionate software developer!

Some of the contributions to the open source world - a blog engine written in MVC 4 - sBlog.Net. Check it out here. For the codeproject article regarding sBlog.Net click here!

(Figuring out this section!)

You may also be interested in...

Comments and Discussions

GeneralReason for my vote of 3 nice Pin
SaranRam4-Oct-10 22:34
memberSaranRam4-Oct-10 22:34 
GeneralReason for my vote of 5 Wow! I definitely didn't know that! Pin
Simon Dufour28-Sep-10 7:47
memberSimon Dufour28-Sep-10 7:47 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.171207.1 | Last Updated 27 Sep 2010
Article Copyright 2010 by Karthik. A
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid