C#如何将CSV文件每一行转换为独立的XML文件?
实现CSV每行单独输出XML的C#代码修改方案
你原来的代码是将所有数据行批量生成到同一个XML节点树中,要实现每行输出独立文件,改用for循环逐行处理即可,修改后的完整代码如下:
// 读取CSV所有行 var lines = File.ReadAllLines(@"C:\Users\csv.txt"); // 提取表头 string[] headers = lines[0].Split(';').Select(x => x.Trim('"')).ToArray(); // 从第2行开始遍历(索引1,跳过表头) for (int i = 1; i < lines.Length; i++) { // 跳过空行避免报错 if (string.IsNullOrWhiteSpace(lines[i])) continue; // 拆分当前行的字段 var columns = lines[i].Split(';'); // 为当前行单独生成XML结构 var xml = new XElement("TopElement", new XElement("Item", columns.Select((column, colIndex) => new XElement(headers[colIndex], column)) ) ); // 按序号命名保存,i从1开始对应xml1、xml2的命名规则 xml.Save($@"C:\Users\xml{i}.xml"); }
关键修改说明
- 保留了原代码的表头提取、字段拆分逻辑,兼容性和原来一致
- 用for循环逐行处理每个数据行,每次循环单独生成仅包含当前行数据的XML结构
- 输出文件按
xml+序号的规则命名,和你预期的输出格式完全匹配 - 额外增加了空行判断逻辑,避免CSV末尾空行导致程序报错
内容的提问来源于stack exchange,提问作者Cc H
相关产品推荐
相关产品推荐

