CSV(Comma-Separated Values)是一种常见的数据交换格式,每一行代表一条记录,每个字段由逗号分隔。XML(eXtensible Markup Language)则是一种标记语言,用于描述数据的结构和内容。
将CSV文件转换为XML格式可以在不同的应用程序之间传递数据,并且使数据结构更加清晰。
CSV到XML的转换可以分为两种类型:
以下是一个简单的C#示例,演示如何将带有头的CSV文件转换为XML格式:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Xml;
class Program
{
static void Main()
{
string csvFilePath = "data.csv";
string xmlFilePath = "data.xml";
List<string[]> csvData = ReadCsv(csvFilePath);
string xmlContent = ConvertToXml(csvData);
File.WriteAllText(xmlFilePath, xmlContent);
Console.WriteLine("CSV to XML conversion completed.");
}
static List<string[]> ReadCsv(string filePath)
{
List<string[]> data = new List<string[]>();
using (StreamReader sr = new StreamReader(filePath))
{
string line;
while ((line = sr.ReadLine()) != null)
{
string[] row = line.Split(',');
data.Add(row);
}
}
return data;
}
static string ConvertToXml(List<string[]> csvData)
{
StringBuilder xmlBuilder = new StringBuilder();
xmlBuilder.AppendLine("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
xmlBuilder.AppendLine("<Data>");
string[] headers = csvData[0];
for (int i = 1; i < csvData.Count; i++)
{
xmlBuilder.AppendLine(" <Record>");
string[] row = csvData[i];
for (int j = 0; j < headers.Length; j++)
{
xmlBuilder.AppendLine($" <{headers[j]}>{row[j]}</{headers[j]}>");
}
xmlBuilder.AppendLine(" </Record>");
}
xmlBuilder.AppendLine("</Data>");
return xmlBuilder.ToString();
}
}
<
, >
, &
等),需要进行转义处理。通过上述示例代码和参考链接,您可以实现从CSV到XML的转换,并解决常见的转换问题。
领取专属 10元无门槛券
手把手带您无忧上云