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.
J'utilise la fonction ADD de XElement.
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); } }
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>
Partager