Supposons donc que c'est ce que je veux réaliser:
<root>
<name>AAAA</name>
<last>BBBB</last>
<children>
<child>
<name>XXX</name>
<last>TTT</last>
</child>
<child>
<name>OOO</name>
<last>PPP</last>
</child>
</children>
</root>
Je ne sais pas si l'utilisation de XElement est le moyen le plus simple
mais voici ce que j'ai jusqu'à présent:
XElement x = new XElement("root",
new XElement("name", "AAA"),
new XElement("last", "BBB"));
Maintenant, je dois ajouter les "enfants" sur la base de certaines données dont je dispose.
Il pourrait y avoir 1,2,3,4 ...
donc je dois parcourir ma liste pour obtenir chaque enfant
foreach (Children c in family)
{
x.Add(new XElement("child",
new XElement("name", "XXX"),
new XElement("last", "TTT"));
}
En procédant de cette façon, il me manquera le "nœud parent ENFANTS". Si je l'ajoute juste avant le foreach, il sera rendu comme un nœud fermé
<children/>
et ce n'est pas ce que nous voulons.
Comment puis-je ajouter à la 1ère partie un nœud parent et autant que ma liste a?
Essaye ça:
var x = new XElement("root",
new XElement("name", "AAA"),
new XElement("last", "BBB"),
new XElement("children",
from c in family
select new XElement("child",
new XElement("name", "XXX"),
new XElement("last", "TTT")
)
)
);
XElement root = new XElement("root",
new XElement("name", "AAA"),
new XElement("last", "BBB"));
XElement children = new XElement("children");
foreach (Children c in family)
{
children.Add(new XElement("child",
new XElement("name", c.Name),
new XElement("last", c.Last));
}
root.Add(children);
var children = new XElement("children");
XElement x = new XElement("root",
new XElement("name", "AAA"),
new XElement("last", "BBB"),
children);
foreach (Children c in family)
{
children.Add(new XElement("child",
new XElement("name", "XXX"),
new XElement("last", "TTT"));
}