linq zu XML: Ein leistungsstarker Ansatz zur XML -Datenhandhabung
.NETs LINQ zu XML bietet eine elegante und effiziente Möglichkeit, XML -Daten zu verarbeiten. Lassen Sie uns untersuchen, wie Sie mit C#verschachtelte XML -Strukturen analysieren und formatieren. Betrachten Sie dieses Beispiel 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>
Unser Ziel ist es, diese Daten in einem hierarchischen Format auszugeben:
<code>A A1 A2 B B1 B2 C</code>
analysieren mit linq an xml
wir beginnen damit, die XML mit XDocument.Load()
zu laden. Anschließend wählt eine Linq -Abfrage die level1
-Knoten und ihre "Namensattribute" aus:
<code class="language-csharp">XDocument xdoc = XDocument.Load("data.xml"); var level1Nodes = from level1 in xdoc.Descendants("level1") select level1.Attribute("name").Value;</code>
Zugriff auf verschriebene Stufe 2 -Knoten
Um auf die verschachtelten level2
-Knoten zuzugreifen, verwenden wir eine verschachtelte Schleife. In der äußeren Schleife (durch level1Nodes
iteriert) filtert ein zweites Linq -Query -Filter level2
-Knoten basierend auf dem "Name" des übergeordneten "Namens":
<code class="language-csharp">foreach (var level1 in level1Nodes) { Console.WriteLine(level1); var level2Nodes = from level2 in xdoc.Descendants("level2") where level2.Parent.Attribute("name").Value == level1 select level2.Attribute("name").Value; foreach (var level2 in level2Nodes) { Console.WriteLine(" " + level2); } }</code>
Die Eindrücke ("") unterscheidet Level 2 von Stufe 1 -Knoten im Ausgang.
komplett C# Code
Hier ist der vollständige Funktionscode -Snippet:
<code class="language-csharp">using System.Xml.Linq; public class XmlParser { public static void Main(string[] args) { XDocument xdoc = XDocument.Load("data.xml"); var level1Nodes = from level1 in xdoc.Descendants("level1") select level1.Attribute("name").Value; foreach (var level1 in level1Nodes) { Console.WriteLine(level1); var level2Nodes = from level2 in xdoc.Descendants("level2") where level2.Parent.Attribute("name").Value == level1 select level2.Attribute("name").Value; foreach (var level2 in level2Nodes) { Console.WriteLine(" " + level2); } } } }</code>
Dies zeigt die Leistung und Effizienz von Linq zu XML für das Parsen und Formatieren von komplexen XML -Strukturen in einer sauberen und lesbaren C# -Codebasis.
Das obige ist der detaillierte Inhalt vonWie kann LINQ XML effizient verschachtelte XML -Daten effizient analysieren und formatieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!