StumbleUpon
Share on Facebook

Thursday, January 29, 2009

How to Convert CSV to XML using C#

C# CSV to XML Conversion, CSV to XML Conversion using LINQ


Language Integrated Query (LINQ) can be used to convert a CSV file to XML. Here is the sample CSV file that needs to be converted

The following code reads the CSV file to an array. LINQ is used to loop through the array and the contents are written as XML using XElement (System.XML.Linq).


public void ConvertCSVToXML()

{

String[] FileContent = File.ReadAllLines(@"C:\Temp\vba.csv");

String XMLNS = "";

XElement Inv = new XElement("Invoice",

from items in FileContent

let fields = items.Split(',')

select new XElement("Item",

new XElement("ID", fields[0]),

new XElement("Name", fields[1]),

new XElement("Price", fields[2]),

new XElement("Availability", fields[3]),

new XElement("TotalPrice", fields[4])

)

);

File.WriteAllText(@"C:\Temp\vba.xml", XMLNS + Inv.ToString() );

}

Here is the Input Text File


The output XML looks like


LINQ and C#, C# Convert CSV To XML, .NET CSV To XML, LINQ CSV to XML, Convert Text files to XML using C#,

2 comments:

Mariner said...

Is there a way to do this in reverse? using LINQ to convert an XML file to a comma delimited text file?

Anonymous said...

You may check out http://xmltocsv.codeplex.com/, I believe this has a conversion that uses Linq to produce CSV from an XML file.

Related Posts Plugin for WordPress, Blogger...