我需要帮助以将某些特定/选定的数据/列从CSV文件转换为XML文件吗? 我在这里找到了这段代码,但这将所有列都带到XML。
var lines = File.ReadAllLines(@"testbsp.csv");
var xml = new XElement("Deltagere",
lines.Select(line => new XElement("Deltager",
line.Split(';')
.Select((column, index) => new XElement("Column" + index, column)))));
有什么主意吗?谢谢!
答案 0 :(得分:0)
使用Cinchoo ETL-一个开放源代码库,您只需几行代码即可轻松将CSV转换为xml文件。
对于下面的示例CSV文件,下面的示例显示了如何使用ID,仅名称列来生成xml文件
示例CSV:
Id, Name, City
1, Tom, NY
2, Mark, NJ
3, Lou, FL
4, Smith, PA
5, Raj, DC
代码:
string csv = @"Id, Name, City
1, Tom, NY
2, Mark, NJ
3, Lou, FL
4, Smith, PA
5, Raj, DC";
StringBuilder sb = new StringBuilder();
using (var p = ChoCSVReader.LoadText(csv).WithFirstLineHeader()
.WithField("Id")
.WithField("Name")
)
{
using (var w = new ChoXmlWriter(sb)
.Configure(c => c.RootName = "Emps")
.Configure(c => c.NodeName = "Emp")
)
{
w.Write(p);
}
}
Console.WriteLine(sb.ToString());
输出:
<Emps>
<Emp>
<Id>1</Id>
<Name>Tom</Name>
</Emp>
<Emp>
<Id>2</Id>
<Name>Mark</Name>
</Emp>
<Emp>
<Id>3</Id>
<Name>Lou</Name>
</Emp>
<Emp>
<Id>4</Id>
<Name>Smith</Name>
</Emp>
<Emp>
<Id>5</Id>
<Name>Raj</Name>
</Emp>
</Emps>
希望有帮助。
答案 1 :(得分:-1)
根据您的代码:
例如,如果您有这样的csv文件:
string csv = @"Id, Name, City
1, Tom, NY
2, Mark, NJ
3, Lou, FL
4, Smith, PA
5, Raj, DC";
// Read all lines
var lines[] = File.ReadAllLines(csv);
XElement xml = new XElement("Deltagere",
// get second column of second line : Tom
new XElement("NodeName", lines[1].Split(",").GetValue(1)),
// get third column of fourth line : FL
new XElement("NodeName2", lines[3].Split(",").GetValue(2))
);
您将获得这样的XML文件:
<Deltagere>
<NodeName>Tom</NodeName>
<NodeName2>FL</NodeName2>
</Deltagere>