LINQ für optimierte XML -Datenbehandlung in C#
nutzenc# Entwickler stellen häufig die Herausforderungen der XML -Datenverarbeitung vor. LINQ bietet eine elegante Lösung für eine effiziente XML -Parsen und strukturierte Ausgabe. Veranschaulichen wir dies mit einem Beispiel XML -Datei:
<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>
unser Ziel ist es, eine hierarchische Darstellung dieser Daten zu generieren:
<code>A A1 A2 B B1 B2 C</code>
Eine linq-basierte Lösung
Der folgende C# Code verwendet LINQ, um diese hierarchische Ausgabe zu erreichen:
<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>
Code -Aufschlüsselung
XDocument.Load
. level1
Knoten und ihre entsprechenden level2
untergeordneten Knoten aus. Das ?.Value
verarbeitet potenzielle Nullattributwerte anmutig. Dies zeigt, wie LinQ XML -Parsen vereinfacht und eine prägnante Möglichkeit bietet, die gewünschte hierarchische Ausgabe in C#zu generieren. Die Verwendung von StringBuilder
optimiert die String -Verkettung für eine verbesserte Leistung.
Das obige ist der detaillierte Inhalt vonWie kann LINQ die XML -Datenanalyse und die hierarchische Ausgabe in C#vereinfachen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!