Tire en tirant LINQ pour la gestion des données XML rationalisée dans C #
C # Les développeurs rencontrent souvent des défis de traitement des données XML. Linq offre une solution élégante pour l'analyse XML efficace et la sortie structurée. Illustrons cela avec un exemple de fichier XML:
<code class="language-xml"><root><level1 name="A"><level2 name="A1"></level2><level2 name="A2"></level2></level1><level1 name="B"><level2 name="B1"></level2><level2 name="B2"></level2></level1><level1 name="C"></level1></root></code>
Notre objectif est de générer une représentation hiérarchique de ces données:
<code>A A1 A2 B B1 B2 C</code>
Une solution basée sur Linq
Le code C # suivant utilise LINQ pour atteindre cette sortie hiérarchique:
<code class="language-csharp">using System.Xml.Linq; using System.Text; public class XmlParser { public static void Main(string[] args) { StringBuilder output = new StringBuilder(); // Load the XML document XDocument xmlDoc = XDocument.Load("data.xml"); // LINQ query to extract hierarchical data var level1Nodes = from level1 in xmlDoc.Descendants("level1") select new { Name = level1.Attribute("name")?.Value, Level2Nodes = level1.Descendants("level2").Select(level2 => level2.Attribute("name")?.Value) }; // Format and output the data foreach (var level1 in level1Nodes) { output.AppendLine(level1.Name); foreach (var level2 in level1.Level2Nodes) { output.AppendLine(" " + level2); } } Console.WriteLine(output.ToString()); } }</code>
Débarquement du code
XDocument.Load
. level1
et leurs nœuds enfants level2
correspondants. Le ?.Value
gère les valeurs d'attribut nul potentielles gracieusement. Cela montre comment LINQ simplifie l'analyse XML et fournit un moyen concis de générer la sortie hiérarchique souhaitée en C #. L'utilisation de StringBuilder
optimise la concaténation des cordes pour améliorer les performances.
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!