XmlSerializer and List
Kelas XmlSerializer
menawarkan kaedah mudah untuk menyahsiri data XML kepada pelbagai jenis data, termasuk senarai objek tersuai. Panduan ini menunjukkan dua pendekatan untuk mencapai matlamat ini.
Kaedah 1: Menggunakan Kelas Pembungkus
Untuk menyahsiri XML menjadi List<User>
, kelas pembalut diperlukan untuk berfungsi sebagai elemen akar dalam struktur XML. Pertimbangkan kelas UserList
:
<code class="language-csharp">[XmlRoot("user_list")] public class UserList { public UserList() { Items = new List<User>(); } [XmlElement("user")] public List<User> Items { get; set; } }</code>
Kelas ini merangkum senarai User
objek. Atribut [XmlRoot("user_list")]
menetapkan "senarai_pengguna" sebagai elemen akar dalam XML. Atribut [XmlElement("user")]
memetakan setiap User
objek kepada elemen "pengguna".
Seterusnya, tentukan kelas User
:
<code class="language-csharp">public class User { [XmlElement("id")] public Int32 Id { get; set; } [XmlElement("name")] public String Name { get; set; } }</code>
Akhir sekali, gunakan XmlSerializer
untuk penyahserikatan:
<code class="language-csharp">XmlSerializer serializer = new XmlSerializer(typeof(UserList)); UserList userList = (UserList)serializer.Deserialize(streamOrStringReader);</code>
Ganti streamOrStringReader
dengan objek Stream
atau StringReader
anda yang mengandungi data XML.
Kaedah 2: Penyahserikatan Tatasusunan Terus
Sebagai alternatif, anda boleh membenamkan senarai terus dalam kelas User
, memudahkan proses:
<code class="language-csharp">[XmlRoot("user_list")] public class User { public User[] Items { get; set; } }</code>
Deserialisasi kemudiannya menjadi:
<code class="language-csharp">XmlSerializer serializer = new XmlSerializer(typeof(User)); User userArray = (User)serializer.Deserialize(streamOrStringReader);</code>
Harta Items
kini memegang tatasusunan User
objek.
Memilih Kaedah yang Betul
Pendekatan kelas pembalut (Kaedah 1) memberikan fleksibiliti yang lebih besar, manakala kaedah tatasusunan langsung (Kaedah 2) menawarkan penyelesaian yang lebih ringkas. Pilihan terbaik bergantung pada struktur khusus data XML dan pilihan peribadi anda.
Atas ialah kandungan terperinci Bagaimana untuk Deserialize XML ke dalam Senarai Menggunakan XmlSerializer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!