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
Lepaskan: 2025-01-30 05:16:08
asal
842 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk
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>
Salin selepas log masuk
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>
Salin selepas log masuk
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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan