Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Linq memudahkan parsing data XML dan output hierarki dalam C#?

Bagaimanakah Linq memudahkan parsing data XML dan output hierarki dalam C#?

Susan Sarandon
Susan Sarandonasal
2025-01-30 05:06:11630semak imbas

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

memanfaatkan LINQ untuk pengendalian data XML yang diselaraskan di C#

C# pemaju sering menghadapi cabaran pemprosesan data XML. LINQ menawarkan penyelesaian yang elegan untuk parsing XML yang cekap dan output berstruktur. Mari kita gambarkan ini dengan contoh fail 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>
Objektif kami adalah untuk menghasilkan perwakilan hierarki data ini:

<code>A
  A1
  A2
B
  B1
  B2
C</code>

Penyelesaian berasaskan LINQ

kod C# berikut menggunakan LINQ untuk mencapai output hierarki ini:

<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>

pecahan kod

    Kod bermula dengan memuatkan fail XML menggunakan
  • . XDocument.Load
  • pertanyaan LINQ dengan cekap memilih
  • nod dan nod kanak -kanak yang sepadan. level1 mengendalikan nilai atribut null yang berpotensi dengan anggun. level2 ?.Value Hasilnya kemudiannya diulang, dan struktur hierarki dibina menggunakan manipulasi rentetan, memastikan lekukan yang betul.
  • Ini menunjukkan bagaimana LINQ memudahkan parsing XML dan menyediakan cara ringkas untuk menghasilkan output hierarki yang dikehendaki dalam C#. Penggunaan
mengoptimumkan penyambungan rentetan untuk prestasi yang lebih baik.

Atas ialah kandungan terperinci Bagaimanakah Linq memudahkan parsing data XML dan output hierarki dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn