【发布时间】:2021-10-19 21:32:09
【问题描述】:
我想将 CSV 的每一行转换成单独的 Xml 文件。
CSV
Number;Name;City
1;Alvin;Spain
2;Carol;USA
3;John;Japan
XML(3 个文件)
xml1:
<TopElement>
<Item>
<Number>1</Number>
<Name>Alvin</Name>
<City>Spain</City>
</Item>
</TopElement>
xml2:
<TopElement>
<Item>
<Number>2</Number>
<Name>Carol</Name>
<City>USA</City>
</Item>
</TopElement>
xml3..等等..
到目前为止,我只找到了这个解决方案,它在同一个文件中输出
var lines = File.ReadAllLines(@"C:\Users\csv.txt");
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(@"C:\Users\output.xml");
请任何人帮助我如何通过添加“For”循环来修改上述代码。
【问题讨论】:
-
这是当你通过复制/粘贴学习编码时的问题。当需要进行更改时,您需要让其他人编写代码,您可以复制/粘贴来进行更改。如果您真正学会自己阅读和理解代码,那就更好了,这样当您需要更改它时,您可以自己进行。
-
用户
for循环,计数器以1开头并循环通过lines。然后为每一行创建 xml 并将其保存到文件中。 -
你不需要把最后一行改成没有固定的文件名吗?