Transformer un fichier CSV en XML

 01/01/2019 |   Admin |  C#


public class ConvertCSVToXML
{
// conversion du fichier CSV téléchargé en fichier xml
private const string _root = "Articles";
private const string _node = "Article";
private const char _separator = ';';
 
public static DataSet convert(string pathSource, string pathDestination)
{
        // remplacement du caractère " " par rien ("")
        StreamReader stream = null;
        string[] saEntetes = null;
        string sLigne = string.Empty;
 
        // Initialisation des DataSet et DataTable
        DataSet csvDataSet = null;
        DataTable csvDataTable = null;
        try
          {
            csvDataSet = new DataSet(_root);
            csvDataTable = new DataTable(_node);
 
            // Lecture du fichier CSV ligne par ligne
            stream = new StreamReader(pathSource);
            sLigne = stream.ReadLine();
 
            // En tenant compte du séparateur
            saEntetes = sLigne.Split(_separator);
 
            for (int i = 0; i < saEntetes.Length; i++)
            {
                // formatage des éléments du fichier XML
                csvDataTable.Columns.Add(saEntetes[i].ToString());
            }
            int ii = 0;
 
            while (sLigne != null)
            {
                if (ii != 0)
                {
                    csvDataTable.Rows.Add(sLigne.Split(_separator));
                    sLigne = stream.ReadLine();
                }
                else
                {
                    ii++;
                    sLigne = stream.ReadLine();
                }
            }
 
            csvDataSet.Tables.Add(csvDataTable);
            csvDataSet.WriteXml(pathDestination);
 
            return csvDataSet;
        }
        catch (Exception ex)
        {
          return null;
        }
    }
}