在XElement中使用“ for”循环

时间:2019-10-31 10:31:46

标签: c# loops xelement

我正在尝试创建CSV到XML的转换器。 XML文件的字段数可能不一定总是相同的,因此我试图获取这个数字,然后用它来创建元素

string[] source = new string[] { ligne };  
                    XElement element = new XElement("DOCUMENT",
                        new XElement("GED",
                            from li in source  
                            let champs = ligne.Split(';')
                            select new XElement("INDEX",
                           // where i'd like to put the loop code
                            new XElement(col[0], champs[0]),
                            new XElement(col[1], champs[1]),
                            new XElement(col[2], champs[2])... //etc,
                            )
                        )
                    );
//the code i'd like to put in the previous code
for (int i = 0; i < col.Length +1; i ++)
{
     new XElement(col[i], champs[i]); 
},

2 个答案:

答案 0 :(得分:0)

除了使用循环,您还可以使用Linq:

<link href="https://cdn.jsdelivr.net/npm/bulma@0.8.0/css/bulma.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="map-card"></div>

答案 1 :(得分:0)

您可以尝试以下代码将csv文件转换为所需的xml文件。

var lines = File.ReadAllLines(@"D:\t\Book1.csv");

string[] headers = lines[0].Split(',').Select(x => x.Trim('\"')).ToArray();

var xml = new XElement("TopElement",
          lines.Where((line, index) => index > 0).Select(line => new XElement("Item",
          line.Split(',').Select((column, index) => new XElement(headers[index], column)))));

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

CSV文件:

enter image description here

Xml文件:

enter image description here