linq ke xml: Pendekatan yang kuat untuk pengendalian data XML
.NET's LINQ ke XML menyediakan cara yang elegan dan cekap untuk memproses data XML. Mari kita periksa cara menghuraikan dan format struktur XML bersarang menggunakan C#. Pertimbangkan sampel XML ini:
<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>
<code>A A1 A2 B B1 B2 C</code>
parsing dengan linq ke xml
kita mulakan dengan memuatkan XML menggunakan. Kemudian, pertanyaan LINQ memilih XDocument.Load()
nod dan atribut "nama" mereka: level1
<code class="language-csharp">XDocument xdoc = XDocument.Load("data.xml"); var level1Nodes = from level1 in xdoc.Descendants("level1") select level1.Attribute("name").Value;</code>
Mengakses Node Level 2 bersarang
Untuk mengakses nod bersarang, kami menggunakan gelung bersarang. Di dalam gelung luar (melangkah melalui), penapis pertanyaan Linq kedua level2
nod berdasarkan atribut "nama" ibu bapa mereka: level1Nodes
level2
<code class="language-csharp">foreach (var level1 in level1Nodes) { Console.WriteLine(level1); var level2Nodes = from level2 in xdoc.Descendants("level2") where level2.Parent.Attribute("name").Value == level1 select level2.Attribute("name").Value; foreach (var level2 in level2Nodes) { Console.WriteLine(" " + level2); } }</code>
Lengkapkan C# code
inilah coretan kod yang lengkap dan berfungsi:
Ini menunjukkan kuasa dan kecekapan LINQ ke XML untuk parsing dan pemformatan struktur XML kompleks dalam code COST yang bersih dan boleh dibaca.
<code class="language-csharp">using System.Xml.Linq; public class XmlParser { public static void Main(string[] args) { XDocument xdoc = XDocument.Load("data.xml"); var level1Nodes = from level1 in xdoc.Descendants("level1") select level1.Attribute("name").Value; foreach (var level1 in level1Nodes) { Console.WriteLine(level1); var level2Nodes = from level2 in xdoc.Descendants("level2") where level2.Parent.Attribute("name").Value == level1 select level2.Attribute("name").Value; foreach (var level2 in level2Nodes) { Console.WriteLine(" " + level2); } } } }</code>
Atas ialah kandungan terperinci Bagaimanakah LINQ ke XML dengan cekap menghuraikan dan memformat data XML bersarang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!