c# - 在c#中将XML文件转换为csv文件格式

标签 c# xml csv accord.net

我正在使用 accord.net 鼠标手势识别示例应用程序,它以上述 xml 格式保存文件。我需要帮助将以上 xml 转换为 CSV 格式,以便我可以使用 accord.net 动态时间扭曲进行机器学习。我不知道如何转换成 csv 文件。

例如:261,210,261,214,261,229,261,231

<?xml version="1.0"?>
<ArrayOfSequence xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Sequence>
    
    <SourcePath>
      <Point>
        <X>261</X>
        <Y>210</Y>
      </Point>
      <Point>
        <X>261</X>
        <Y>214</Y>
      </Point>
      <Point>
        <X>261</X>
        <Y>227</Y>
      </Point>
      <Point>
        <X>261</X>
        <Y>229</Y>
      </Point>
      <Point>
        <X>261</X>
        <Y>231</Y>
      </Point>
      <Point>
        <X>261</X>
        <Y>234</Y>
      </Point>
      <Point>
        <X>261</X>
        <Y>237</Y>
      </Point>
</Sequence>
</ArrayOfSequence>

最佳答案

using System.IO;
using System.Xml.Serialization;

你可以这样做:

public class Sequence
{
    public Point[] SourcePath { get; set; }
}

using (FileStream fs = new FileStream(@"D:\youXMLFile.xml", FileMode.Open))
{
    XmlSerializer serializer = new XmlSerializer(typeof(Sequence[]));
    var data=(Sequence[]) serializer.Deserialize(fs);
    List<string> list = new List<string>();
    foreach(var item in data)
    {
        List<string> ss = new List<string>();
        foreach (var point in item.SourcePath) ss.Add(point.X + "," + point.Y);
        list.Add(string.Join(",", ss));
    }
    File.WriteAllLines("D:\\csvFile.csv", list);
}

关于c# - 在c#中将XML文件转换为csv文件格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35628637/

相关文章:

c# - 从 lambda 表达式中检索事件名称

android - 启动图像大小

sql - 在 SQL 2005 上使用 FOR XML PATH 时如何保留与号 (&)

c - C 中的 UTF-16 到 UTF-8

python - csv在循环python内的行中写入替代空格

c# - 通过无垃圾反射获得值(value)

c# - 这个语法叫什么? SomeMoneyFormat f = "€ 5,00";

string - 如何在 Julia 中使用双引号字符串解析 CSV 文件?

c# - 使 session 过期

java - 在 Android 应用程序中接收彩信