0

I am using .NET and trying to convert an CSV data input (Example 1st row is header and following rows are the data: header1,header2,header3;row11,row12,row13;row21,row22,row23). Trying to convert this into XML format based on another XML template (there are multiple XML templates based on which the corresponding XML should be generated)

What is best practice to do this in .NET?

Sample template1:

<Claims>
     <Claim>
      <Header1></Header1>
      <Header2></Header2>
      <Header3></Header3>
     </Claim>
</Claims>

Sample template2:

<Handlers>
     <Handler>
      <Header2></Header2>
      <Header3></Header3>
      <Header1></Header1>
     </Handler>
</Handlers>
helloworld
  • 894
  • 1
  • 8
  • 18

1 Answers1

0

You should find a library that deserilizes CSV's then just serialize it into Xml using the XmSerializer.

Ie, using something like CsvHelper

var csv = new CsvReader( File.OpenText( "file.csv" ) );
var myCustomObjects = csv.GetRecords<MyCustomObject>();

Then get that resulting object and serialize into Xml:

XmlSerializer serializer = new XmlSerializer(typeof(MyCustomObject));
var subReq = new MyCustomObject();
StringWriter sww = new StringWriter();
XmlWriter writer = XmlWriter.Create(sww);
serializer.Serialize(writer, subReq);
var xml = sww.ToString(); // Your xml
Community
  • 1
  • 1
webnoob
  • 15,747
  • 13
  • 83
  • 165