转换CSV文件,XML [英] Convert CSV file to XML

查看:152
本文介绍了转换CSV文件,XML的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要转换的CSV到XML文档。 。到目前为止,我所看到的例子,都说明了如何用固定数量的CSV列的做到这一点。



我有这到目前为止,使用LINQ:

 的String []文件= File.ReadAllLines(@C:\text.csv); 

字符串XML =;

的XElement顶部=新的XElement(TopElement,
$ B $来自文件

条b让田= items.Split(';')

。选择所需的新的XElement(项目,

新的XElement(列1,字段[0]),

新的XElement(列2 ,字段[1]),

新的XElement(栏3,字段[2]),

新的XElement(Column4,字段[3]),

新的XElement(Column5,字段[4])



);

File.WriteAllText(@C:\xmlout.xml,XML + top.ToString());

这是对列的固定量,但我的.CSV具有不同的数目在每个列行。



您将如何适应某种循环成这样,这取决于有多少字(列)有在.csv的每一行?



日Thnx


解决方案

  VAR线=文件.ReadAllLines(@C:\text.csv); 

VAR XML =新的XElement(TopElement,
lines.Select(行=>新建的XElement(项目,
line.Split(';')
。选择((列指数)=>新建的XElement(列+索引,列)))));

xml.Save(@C:\xmlout.xml);






输入:

  A; b; C 
D,E,˚F
摹; H

输出:

 < TopElement> 
<项目>
< Column0>一种< / Column0>
<列1> B< /列1>
<列2> C< /列2>
< /项目>
<项目>
< Column0> D< / Column0>
<列1> E< /列1>
<列2> F< /列2>
< /项目>
<项目>
< Column0> G< / Column0>
<列1> H< /列1>
< /项目>
< / TopElement>


I need to Convert a CSV into an XML document. The examples I have seen so far, all show how to do this with a fixed number of columns in the CSV.

I have this so far, using LINQ:

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

        String xml = "";

        XElement top = new XElement("TopElement",

        from items in File

        let fields = items.Split(';')

        select new XElement("Item",

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

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

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

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

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

        )

        );

        File.WriteAllText(@"C:\xmlout.xml", xml + top.ToString());

This is for a fixed amount of columns, but my .CSV has a different number of columns on each line.

How would you fit some sort of loop into this, depending on how many words (columns) there are in each line of the .CSV?

Thnx

解决方案

var lines = File.ReadAllLines(@"C:\text.csv");

var xml = new XElement("TopElement",
   lines.Select(line => new XElement("Item",
      line.Split(';')
          .Select((column, index) => new XElement("Column" + index, column)))));

xml.Save(@"C:\xmlout.xml");


Input:

A;B;C
D;E;F
G;H

Output:

<TopElement>
  <Item>
    <Column0>A</Column0>
    <Column1>B</Column1>
    <Column2>C</Column2>
  </Item>
  <Item>
    <Column0>D</Column0>
    <Column1>E</Column1>
    <Column2>F</Column2>
  </Item>
  <Item>
    <Column0>G</Column0>
    <Column1>H</Column1>
  </Item>
</TopElement>

这篇关于转换CSV文件,XML的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆