je travaille avec un fichier xml qui ressemble à ceci:les attributs d'arbre XML à l'aide LINQ
<?xml version="1.0" encoding="UTF-8"?>
<element1 xmlns="http://namespace1/">
<element2>
<element3>
<element4 attr1="2009-11-09">
<element5 attr2="NAME1">
<element6 attr3="1">
<element7 attr4="1" attr5="5.5" attr6="3.4"/>
</element6>
</element5>
<element5 attr2="NAME2">
<element6 attr3="1">
<element7 attr4="3" attr5="4" attr6="4.5"/>
</element6>
</element5>
</element4>
</element3>
</element2>
</element1>
où je dois faire une boucle par element5 et récupérer les attributs dans un Ienumberable comme celui-ci:
attr1, attr2, attr3, attr4, attr5, attr6
en utilisant linq à xml et C#. Je peux parcourir l'élément 5 et obtenir toutes les informations de l'attribut2, mais je n'arrive pas à comprendre comment obtenir les attributs parent ou enfant dont j'ai besoin.
MISE À JOUR: Merci pour le retour d'expérience jusqu'à présent. Pour plus de clarté, je dois faire une boucle à travers l'attribut5. Donc, fondamentalement, ce que j'ai en ce moment (ce qui n'est pas beaucoup) est. . .
XElement xel = XElement.Load(xml);
IEnumberable<XElement> cList = from el in xel.Elements(env + "element2").Element
(n2 + "element3").Elements(n2 + "element4").Elements(ns + "element5") select el;
foreach (XElement e in cList)
Console.WriteLine(e.Attribute("attr2").Value.ToString());
Cela me donnera la valeur toutes les attr 2 dans la boucle, mais je pourrais aller sur ce tout faux pour ce que je suis en train de acheive. J'ai également besoin de collecter les autres attributs mentionnés ci-dessus dans une collection (la référence de la console est juste moi jouant avec cela maintenant mais le résultat final dont j'ai besoin est une collection). Donc, les résultats finaux seraient une collection comme
attr1, attr2, attr3, attr4, attr5, attr6
2009-11-09, name1, 1, 1, 5.5, 3.4
2009-11-09, name2, 1, 3, 4, 4.5
Comment faire?
Je ne suis pas complètement sûr que vous voulez renvoyer les données, il y a plusieurs éléments de Element5. Voulez-vous un ienumerable qui renvoie attr1, attr2, attr3, .., attr6, attr1 (de l'élément suivant)? Ou un nombre d'objets avec attr1 till attr6? –
Je serais ravi d'avoir un peu de rétroaction sur le fait de savoir si nous avons répondu à votre question, et si ce n'est pas le cas, ce que nous n'avons pas tout à fait raison ... Vous avez deux réponses maintenant. – LorenVS
essayé d'ajouter un commentaire, mais a couru après la limite de 600 caractères, donc j'ai mis à jour le poste. – nelsonwebs