Heim > Backend-Entwicklung > C++ > Wie kann Linq das Lesen und Formatieren von XML -Daten in C#vereinfachen?

Wie kann Linq das Lesen und Formatieren von XML -Daten in C#vereinfachen?

DDD
Freigeben: 2025-01-30 05:16:08
Original
890 Leute haben es durchsucht

How Can LINQ Simplify Reading and Formatting XML Data in C#?

optimierung der XML -Datenverarbeitung mit C# Linq

Die Nutzung von LINQ vereinfacht die Manipulation von XML -Daten in C#signifikant. Dieses Beispiel zeigt, wie XML -Daten für die Ausgabe effizient gelesen und formatieren können.

1. XML -Dokument Laden:

Der Prozess beginnt mit dem Laden des XML -Dokuments:

<code class="language-csharp">XDocument xdoc = XDocument.Load("data.xml");</code>
Nach dem Login kopieren

2. EXPRECTIONENEN ELEMENTEN ELEMENTEN 1 und PLEVEL 2:

Als nächstes extrahiert eine Linq -Abfrage "Level1" -Elemente und ihre zugehörigen "Level2" Kinder:

<code class="language-csharp">var lv1Elements = from lv1 in xdoc.Descendants("level1")
                  select new
                  {
                      Header = lv1.Attribute("name")?.Value,
                      Children = lv1.Descendants("level2").Select(lv2 => lv2.Attribute("name")?.Value)
                  };</code>
Nach dem Login kopieren

Diese Abfrage projiziert die Daten in einen anonymen Typ, der den Header "Level1" und eine Sammlung von "Level2" -Namen enthält. Das ?.Value behandelt potenzielle Null -Attribute anmutig.

3. Formatieren der Ausgabe:

Schließlich werden die extrahierten Daten formatiert und ausgegeben:

<code class="language-csharp">StringBuilder output = new StringBuilder();
foreach (var lv1 in lv1Elements)
{
    output.AppendLine(lv1.Header);
    foreach (var lv2 in lv1.Children)
    {
        output.AppendLine("     " + lv2);
    }
}

Console.WriteLine(output.ToString());</code>
Nach dem Login kopieren

Diese Schleife durch die Ergebnisse durchläuft und den Header "Level1" und den eingebauten "Level2" -Namen an die StringBuilder.

Vollständiges Beispiel:

Hier ist der vollständige, raffinierte Code:

<code class="language-csharp">using System.Xml.Linq;
using System.Text;

public class XmlProcessor
{
    public static void Main(string[] args)
    {
        StringBuilder output = new StringBuilder();
        XDocument xdoc = XDocument.Load("data.xml");

        var lv1Elements = from lv1 in xdoc.Descendants("level1")
                          select new
                          {
                              Header = lv1.Attribute("name")?.Value,
                              Children = lv1.Descendants("level2").Select(lv2 => lv2.Attribute("name")?.Value)
                          };

        foreach (var lv1 in lv1Elements)
        {
            output.AppendLine(lv1.Header ?? "N/A"); // Handle potential null header
            foreach (var lv2 in lv1.Children ?? Enumerable.Empty<string>()) // Handle potential null children
            {
                output.AppendLine("     " + lv2);
            }
        }

        Console.WriteLine(output.ToString());
    }
}</code>
Nach dem Login kopieren
Diese verbesserte Version enthält Nullprüfungen für Robustheit und verwendet eine

für eine effiziente String -Verkettung. Der LINQ -Ansatz bietet eine saubere und lesbare Lösung zum Navigieren und Verarbeitung von XML -Daten in C#. StringBuilder

Das obige ist der detaillierte Inhalt vonWie kann Linq das Lesen und Formatieren von XML -Daten in C#vereinfachen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage