Bonjour,

Je débute avec C# et XML.

Je parts d'une base de données et j'ai récupéré les données d'une table que je dois transformer en XML.

La datatable s'appelle 'agentService'.

Je dois obtenir ceci (j'ai switché les données):
J'ai mis de l'indentation mais elle disparait.

<NaturalPerson>
<INSS></INSS>
<WorkerName></WorkerName>
<WorkerFirstName></WorkerFirstName>
etc
</NaturalPerson>
<NaturalPerson>
<INSS></INSS>
<WorkerName></WorkerName>
<WorkerFirstName></WorkerFirstName>
etc
</NaturalPerson>
<NaturalPerson>
<INSS></INSS>
<WorkerName></WorkerName>
<WorkerFirstName></WorkerFirstName>
etc
</NaturalPerson>

Voici mon code.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public NaturalPerson()
        {
 
            this.getAgentService();
            for (int i = 0; i < this.agentService.Rows.Count; i++)
            {
                XElement naturalPerson1 = new XElement("NaturalPerson",
                    new XElement("INSS", this.agentService.Rows[i]["U2LID_N_REG_NATIONAL_C"].ToString()),
                    new XElement("WorkerName", this.agentService.Rows[i]["U2PPH_NOM_PERS_PHYSIQUE"].ToString()),
                    new XElement("WorkerFirstName", this.agentService.Rows[i]["U2PPH_PRENOM_PERS_PHYSIQUE"].ToString()),
                    new XElement(new HistoricalAttestationInformation().getHistoricalAttestationInformation())
                );
                //Test pour vérifier si naturalPerson n'est pas encore instantié
                if (this.naturalPerson == null)
                {
                    this.naturalPerson = new XElement(naturalPerson1);
                }
                else
                    this.naturalPerson.Add(naturalPerson1);
            }
        }
J'utilise la fonction ADD de XElement.

Et voici ce que j'obtient, j'ai cherché mais en vain à résoudre ce problème.

Le premier naturalPerson contient les autres et je ne vois pas de moyen de contourner ça.

<NaturalPerson>
<INSS></INSS>
<WorkerName></WorkerName>
<WorkerFirstName></WorkerFirstName>
etc
<NaturalPerson>
<INSS></INSS>
<WorkerName></WorkerName>
<WorkerFirstName></WorkerFirstName>
etc
</NaturalPerson>
<NaturalPerson>
<INSS></INSS>
<WorkerName></WorkerName>
<WorkerFirstName></WorkerFirstName>
etc
</NaturalPerson>
<NaturalPerson>
<INSS></INSS>
<WorkerName></WorkerName>
<WorkerFirstName></WorkerFirstName>
etc
</NaturalPerson>
</NaturalPerson>