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
