Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Linq dapat memudahkan membaca dan memformat data XML dalam C#?

Bagaimanakah Linq dapat memudahkan membaca dan memformat data XML dalam C#?

DDD
DDDasal
2025-01-30 05:16:08929semak imbas

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

menyelaraskan pemprosesan data XML dengan C# linq

memanfaatkan LINQ dengan ketara memudahkan manipulasi data XML dalam C#. Contoh ini mempamerkan cara membaca dan memformat data XML dengan cekap untuk output.

1. XML Dokumen Memuatkan:

Proses bermula dengan memuatkan dokumen XML:

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

2. Mengekstrak Tahap 1 dan Tahap 2 Elemen:

Seterusnya, pertanyaan LINQ mengekstrak elemen "level1" dan anak -anak mereka yang berkaitan "level2":

<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>
Pertanyaan ini memproyeksikan data ke dalam jenis tanpa nama yang mengandungi tajuk "Level1" dan koleksi nama "Level2". The

mengendalikan atribut null yang berpotensi dengan anggun. ?.Value

3. Memformat output:

Akhirnya, data yang diekstrak diformat dan output:

<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>
Gelung ini melangkah melalui hasil, memajukan tajuk "Level1" dan nama "Level2" yang diinduksi ke

. StringBuilder

Contoh Lengkap:

inilah kod lengkap dan halus:

<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>
Versi yang lebih baik ini menggabungkan pemeriksaan null untuk keteguhan dan menggunakan

untuk penyambungan rentetan yang cekap. Pendekatan LINQ menawarkan penyelesaian yang bersih dan boleh dibaca untuk menavigasi dan memproses data XML dalam C#. StringBuilder

Atas ialah kandungan terperinci Bagaimanakah Linq dapat memudahkan membaca dan memformat data XML 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