<?xml version="1.0" encoding="utf-8"?> <W-TIBCPTRs> <W-TIBCPTR> <TYPTRT>FDR2 R</TYPTRT> <CLAFCNO VALIDE="NON">5b1</CLAFCNO> <NUMCLI>0067781</NUMCLI> <TYPACT>D</TYPACT> <NATCTRT>STD</NATCTRT> <CLDEVCDE>EUR</CLDEVCDE> <AFCACH>511</AFCACH> <NUMACH>3700167</NUMACH> <DEVACH>EUR</DEVACH> <NUMDOC>20130051 </NUMDOC> <LIBECR>D�l�gation signature(s) </LIBECR> <GAPROFIL>JFL </GAPROFIL> <GADATE>20130521</GADATE> <GAHEURE>113122</GAHEURE> <FILLER /> </W-TIBCPTR> <W-TIBCPTR> <TYPTRT>FDR2 R</TYPTRT> <CLAFCNO>511</CLAFCNO> <NUMCLI>0068078</NUMCLI> <TYPACT>D</TYPACT> <NATCTRT>STD</NATCTRT> <CLDEVCDE>EUR</CLDEVCDE> <AFCACH>511</AFCACH> <NUMACH>2717150</NUMACH> <DEVACH>EUR</DEVACH> <NUMDOC /> <LIBECR /> <GAPROFIL /> <GADATE /> <GAHEURE /> <FILLER /> </W-TIBCPTR> <W-TIBCPTR> <TYPTRT>FDR2 V</TYPTRT> <CLAFCNO>511</CLAFCNO> <NUMCLI>0048606</NUMCLI> <TYPACT>D</TYPACT> <NATCTRT>STD</NATCTRT> <CLDEVCDE>EUR</CLDEVCDE> <AFCACH>511</AFCACH> <NUMACH>3129386</NUMACH> <DEVACH>EUR</DEVACH> <NUMDOC>fa2651 </NUMDOC> <LIBECR>Non abouti/Facture � pr�-relancer </LIBECR> <GAPROFIL>JFL </GAPROFIL> <GADATE>20130523</GADATE> <GAHEURE>142823</GAHEURE> <FILLER /> </W-TIBCPTR> <W-TIBCPTR> <TYPTRT>FDR2 R</TYPTRT> <CLAFCNO>511</CLAFCNO> <NUMCLI>0069023</NUMCLI> <TYPACT>D</TYPACT> <NATCTRT>STD</NATCTRT> <CLDEVCDE>EUR</CLDEVCDE> <AFCACH>511</AFCACH> <NUMACH>3768193</NUMACH> <DEVACH>EUR</DEVACH> <NUMDOC>FC70 </NUMDOC> <LIBECR>D�l�gation signature(s) </LIBECR> <GAPROFIL>JFL </GAPROFIL> <GADATE>20130524</GADATE> <GAHEURE>133716</GAHEURE> <FILLER /> </W-TIBCPTR> <W-TIBCPTR> <TYPTRT>FDR2 R</TYPTRT> <CLAFCNO VALIDE="NON">5b8</CLAFCNO> <NUMCLI>0052830</NUMCLI> <TYPACT>E</TYPACT> <NATCTRT>GPE</NATCTRT> <CLDEVCDE>EUR</CLDEVCDE> <AFCACH>999</AFCACH> <NUMACH>0026627</NUMACH> <DEVACH>EUR</DEVACH> <NUMDOC>130512 </NUMDOC> <LIBECR>D�l�gation signature(s) </LIBECR> <GAPROFIL>JFL </GAPROFIL> <GADATE>20130527</GADATE> <GAHEURE>095045</GAHEURE> <FILLER /> </W-TIBCPTR> </W-TIBCPTRs>
string csvSeparator = ","; Func<string, string> escapeValue = val => val; string xml = textBox1.Text; XDocument doc = XDocument.Parse(xml); var headers = doc.Root .Elements() .First() .Elements() .Select(el => el.Name.LocalName); var headerRow = string.Join(csvSeparator, headers); var rows = from el in doc.Root.Elements() let values = from prop in el.Elements() select escapeValue(prop.Value) let row = string.Join(csvSeparator, values) select row; IEnumerable<string> csvLines = new[] { headerRow }.Concat(rows);
Data at the root level is invalid. Line 1, position 1
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)