Ik maak gebruik van onderstaande
C# Code:
  1. static void GenerateCsvFromXml(string xmlString, string resultFileName, bool isTabDelimited)
  2.         {
  3.  
  4.             XDocument xDoc = XDocument.Parse(xmlString);    
  5.  
  6.             string delimiter = "\t";            
  7.  
  8.  
  9.             // Get title row
  10.            
  11.             var titlesList = xDoc.Root
  12.                 .Elements()
  13.                 .First()
  14.                 .Elements()
  15.                 .Select(s => s.Name.LocalName)
  16.                 .ToList();
  17.  
  18.             var masterValuesList = xDoc.Root
  19.                  .Elements()
  20.                  .Select(e => e
  21.                      .Elements()
  22.                      .Select(c => c.Value)
  23.                      .ToList())
  24.                  .ToList();
  25.  
  26.            
  27.             // Add titles as first row in master values list
  28.             masterValuesList.Insert(0, titlesList);
  29.  
  30.  
  31.            
  32.  
  33.             // Write the file
  34.             using (var fs = new FileStream(resultFileName, FileMode.Create))
  35.             using (var sw = new StreamWriter(fs))
  36.             {
  37.                 foreach (var values in masterValuesList)
  38.                 {
  39.                     string line = string.Empty;
  40.  
  41.                     foreach (var value in values)
  42.                     {
  43.                         line += value;
  44.                         if (titlesList.IndexOf(value) < titlesList.Count - 1)
  45.                         {
  46.  
  47.                            line += delimiter;
  48.                            
  49.                         }
  50.                     }
  51.  
  52.                     sw.WriteLine(line);
  53.                 }
  54.             }
  55.         }


Dit werkt goed bij een XML bestand waarvan de records gelijk zijn. Nu heb ik alleen een XML als volgt :

Code:
<ArrayOfDealer xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <Dealer>
        <DealerNumber/>
        <DealershipName>BROWARD MOTORSPORTS - WPB</DealershipName>
    </Dealer>
    <Dealer>
        <Cmf>76071027</Cmf>
        <DealerNumber/>
        <DealershipName>BROWARD MOTORSPORTS OF FT LAUDERDALE LLC</DealershipName>
    </Dealer>
    <Dealer>
        <Cmf>76014750</Cmf>
        <DealerNumber/>
        <DealershipName>Jet Ski of Miami</DealershipName>
    </Dealer>
    <Dealer>
        <Cmf>76066987</Cmf>
        <DealershipName>BROWARD MOTORSPORTS - Davie</DealershipName>
    </Dealer>
</ArrayOfDealer>
Doordat in het XML bestand niet ieder record gelijk is , krijg ik
Code:
76066699,BROWARD,MOTORSPORTS - WPB,
76071027,MOTORSPORTS OF FT LAUDERDALE LLC,
76066987,BROWARD,MOTORSPORTS - Davie,
i.p.v.

Code:
76066699,BROWARD,MOTORSPORTS - WPB,
76071027,,MOTORSPORTS OF FT LAUDERDALE LLC,
76066987,BROWARD,MOTORSPORTS - Davie,
Weet iemand hoe ik masterValuesList kan aanpassen zodat deze altijd de zelfde aantal velden als titlesLis krijgt?

Gr,
Fonzie