将目录中的所有xml文件转换为单个或多个csv文件

时间:2017-03-16 08:38:44

标签: xml csv directory

我在目录中有数千个.xml文件。我不习惯使用xml并需要将它们转换为.csv文件。它可以是所有文件的一个csv文件,也可以是每个文件一个,我更喜欢后者。我也不知道VBA。如何使用bash脚本或使用某些开源程序执行此操作?我确实发现很多网站将一个xml文件转换为一个csv文件,但是我需要为每个文件执行此操作...我知道MATLAB所以MATLAB中的脚本会很棒

1 个答案:

答案 0 :(得分:0)

我使用C#

为您提供了一个快速示例
    public class YourObject
    {
        public string Name { get; set; }
        public string Number { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            string path = "your folder path";
            string[] files = Directory.GetFiles(path, "*.xml", SearchOption.AllDirectories);
            foreach (string file in files)
            {
                using (var fs = new FileStream(file, FileMode.Open))
                {
                    var serializer = new XmlSerializer(typeof(YourObject[]));
                    var data = (YourObject[])serializer.Deserialize(fs);
                    var list = new List<string>();

                    foreach (var item in data)
                    {
                        var ss = new List<string>();
                        ss.Add(item.Name + ',' + item.Number);
                        list.Add(string.Join(System.Environment.NewLine, ss));
                    }
                    File.WriteAllLines("D:\\csvFile.csv", list);
                }
            }
        }
    }

您需要修改类&#34; YourObject&#34;表示您的XML文件结构。