2017-03-16 2 views
0

디렉토리에 수천 개의 .xml 파일이 있습니다. 나는 xml을 사용하는 것이 편하지 않고 .csv 파일로 변환 할 필요가있다. 모든 파일에 대해 하나의 CSV 파일이거나 각각에 대해 하나의 CSV 파일 일 수 있습니다. 나는 후자를 선호합니다. 나는 VBA도 모른다. 어떻게하면 bash 스크립트를 사용하거나 오픈 소스 프로그램을 사용할 수 있습니까? 하나의 XML 파일을 하나의 CSV 파일로 변환하는 많은 웹 사이트를 찾았지만 각각에 대해이 작업을 수행해야합니다 ... MATLAB에서 스크립트를 사용하면 MATLAB의 스크립트가 훌륭해집니다.디렉토리의 모든 xml 파일을 하나 또는 여러 개의 csv 파일로 변환

답변

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); 
       } 
      } 
     } 
    } 

XML 파일 구조를 나타내려면 "YourObject"클래스를 수정해야합니다.