Je rencontre un problème lors de l'exécution d'une requête LINQ. J'ai ce code XML:Requête imbriquée Linq to XML
<devices>
<device id ="2142" name="data-switch-01">
<interface id ="2148" description ="Po1"/>
</device>
<device id ="2302" name="data-switch-02">
<interface id ="2354" description ="Po1"/>
<interface id ="2348" description ="Gi0/44" />
</device>
</devices>
Et ce code:
var devices = from device in myXML.Descendants("device")
select new
{
ID = device.Attribute("id").Value,
Name = device.Attribute("name").Value,
};
foreach (var device in devices)
{
Device d = new Device(Convert.ToInt32(device.ID), device.Name);
var vIfs = from vIf in myXML.Descendants("device")
where Convert.ToInt32(vIf.Attribute("id").Value) == d.Id
select new
{
ID = vIf.Element("interface").Attribute("id").Value,
Description = vIf.Element("interface").Attribute("description").Value,
};
foreach (var vIf in vIfs)
{
DeviceInterface di = new DeviceInterface(Convert.ToInt32(vIf.ID), vIf.Description);
d.Interfaces.Add(di);
}
lsDevices.Add(d);
}
Mon objet de l'appareil contient une liste de DeviceInterfaces que je dois remplir à partir du XML. Au moment où mon code ne remplit que la première interface, tous les suivants sont ignorés et je ne peux pas comprendre pourquoi.
J'aimerais aussi savoir si c'est la bonne façon de le faire. Les boucles foreach imbriquées semblent un peu en désordre me
Vive
Merci qui ressemble beaucoup plus agréable, je vais donner un coup de feu plus tard :) Ouais – user299342
qui est sur place, cheers! – user299342