Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Deserialize XML ke dalam Senarai Menggunakan XmlSerializer?

Bagaimana untuk Deserialize XML ke dalam Senarai Menggunakan XmlSerializer?

Barbara Streisand
Lepaskan: 2025-01-13 07:59:57
asal
140 orang telah melayarinya

How to Deserialize XML into a List Using XmlSerializer?

XmlSerializer and List Deserialisasi: Panduan Praktikal

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

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

Akhir sekali, gunakan XmlSerializer untuk penyahserikatan:

<code class="language-csharp">XmlSerializer serializer = new XmlSerializer(typeof(UserList));
UserList userList = (UserList)serializer.Deserialize(streamOrStringReader);</code>
Salin selepas log masuk

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

Deserialisasi kemudiannya menjadi:

<code class="language-csharp">XmlSerializer serializer = new XmlSerializer(typeof(User));
User userArray = (User)serializer.Deserialize(streamOrStringReader);</code>
Salin selepas log masuk

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan