Heim > Backend-Entwicklung > C++ > Wie kann LINQ die XML -Datenanalyse und die hierarchische Ausgabe in C#vereinfachen?

Wie kann LINQ die XML -Datenanalyse und die hierarchische Ausgabe in C#vereinfachen?

Susan Sarandon
Freigeben: 2025-01-30 05:06:11
Original
589 Leute haben es durchsucht

How Can LINQ Simplify XML Data Parsing and Hierarchical Output in C#?

LINQ für optimierte XML -Datenbehandlung in C#

nutzen

c# 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>
Nach dem Login kopieren

unser Ziel ist es, eine hierarchische Darstellung dieser Daten zu generieren:

<code>A
  A1
  A2
B
  B1
  B2
C</code>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Code -Aufschlüsselung

  • Der Code beginnt mit dem Laden der XML -Datei mit XDocument.Load.
  • Eine Linq -Abfrage wählt effizient level1 Knoten und ihre entsprechenden level2 untergeordneten Knoten aus. Das ?.Value verarbeitet potenzielle Nullattributwerte anmutig.
  • Die Ergebnisse werden dann iteriert, und die hierarchische Struktur wird unter Verwendung einer String -Manipulation erstellt, um die ordnungsgemäße Eindrücke zu gewährleisten.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage