在.NET中有没有办法根据预定义的XML模板将CSV值转换为XML?

时间:2015-03-28 05:59:50

标签: c# .net

我正在使用.NET并尝试转换CSV数据输入(示例第1行是标题,后续行是数据:header1,header2,header3; row11,row12,row13; row21,row22,row23)。尝试将其转换为基于另一个XML模板的XML格式(有多个XML模板,基于该模板应生成相应的XML)

在.NET中执行此操作的最佳做​​法是什么?

示例template1:​​

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

示例模板2:

<Handlers>
     <Handler>
      <Header2></Header2>
      <Header3></Header3>
      <Header1></Header1>
     </Handler>
</Handlers>

1 个答案:

答案 0 :(得分:0)

您应该找到deserilizes CSV's的库,然后使用XmSerializer将其序列化为Xml。

即使用类似CsvHelper

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

然后获取生成的对象并序列化为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