Maison >développement back-end >C++ >Comment LINQ peut-il simplifier la navigation et l'extraction de données hiérarchiques à partir de structures XML imbriquées?
Utilisez LINQ pour traiter efficacement les données en couches dans la structure XML imbriquée
Cet exemple de code montre comment LINQ est utilisé pour extraire les données en couches du fichier XML de manière structurée. Notre document XML contient des éléments imbriqués multi-couches, et la tâche consiste à imprimer des données dans un format spécifique, où l'évacuation indique des relations hiérarchiques.
Le fichier XML représente une structure en forme d'arbre, y compris trois couches: niveau1, niveau2 et niveau3. Pour résoudre ce problème, nous utilisons d'abord le fichier XML chargé
. Ensuite, utilisez la fonction de requête LINQ pour traverser le nœud XML.
XDocument.Load()
La première requête LINQ récupérée de niveau1 et extraire leur attribut "nom" comme titre. Ensuite, nous avons traversé ces titres et les avons imprimés. Pour chaque titre, nous effectuons une requête imbriquée pour obtenir l'élément de niveau 2 correspondant, puis imprimez ces éléments et utilisons une indentation appropriée.
Ce code montre les fonctionnalités puissantes de LINQ dans la structure XML de nidification profonde et les données d'extrait efficace. Nesal Query nous permet de conserver la relation hiérarchique entre les éléments et les données actuelles dans un format clair et ordonné.
<code class="language-csharp">using System.Xml.Linq; using System.Text; StringBuilder result = new StringBuilder(); XDocument xdoc = XDocument.Load("data.xml"); var lv1s = from lv1 in xdoc.Descendants("level1") select new { Header = lv1.Attribute("name").Value, Children = lv1.Descendants("level2") }; foreach (var lv1 in lv1s){ result.AppendLine(lv1.Header); foreach(var lv2 in lv1.Children) result.AppendLine(" " + lv2.Attribute("name").Value); } Console.WriteLine(result);</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!