Converting a CSV file to XML using LINQ to XML and Functional Construction
Steve has published on his blog a sample from the book we are working on together. This example shows how LINQ to XML makes it easy to convert a CSV file into an XML document.
Going from CSV to XML doesn't require something more complicated than this:
XElement xml =
new XElement("books",
from line in File.ReadAllLines("books.txt")
where !line.StartsWith("#")
let items = line.Split(',')
select new XElement("book",
new XElement("title", items[1]),
new XElement("authors",
from authorFullName in items[2].Split(';')
let authorNameParts = authorFullName.Split(' ')
select new XElement("author",
new XElement("firstName", authorNameParts[0]),
new XElement("lastName", authorNameParts[1])
)
),
new XElement("publisher", items[3]),
new XElement("publicationDate", items[4]),
new XElement("price", items[5]),
new XElement("isbn", items[0])
)
);
Cross-posted from http://linqinaction.net