C# 解析XML和反序列化的示例



在C#中,解析XML和反序列化可以通过多种方式完成,其中最常用的方式是使用System.Xml命名空间中的类。以下是一个简单的示例,展示如何解析XML字符串并反序列化到对象。

首先,定义一个类来表示XML结构中的数据:

public class Person  
{  
    public string Name { get; set; }  
    public int Age { get; set; }  
    public string Email { get; set; }  
}

接下来,我们使用XmlSerializer类将XML字符串反序列化为Person对象:

using System;  
using System.Xml.Serialization;  
using System.IO;  
  
public class XmlParsingExample  
{  
    public static void Main()  
    {  
        // 假设我们有以下XML字符串:  
        string xmlString = @"<Person>  
                                <Name>John Doe</Name>  
                                <Age>30</Age>  
                                <Email>john.doe@example.com</Email>  
                            </Person>";  
          
        // 创建 XmlSerializer 实例并指定要反序列化的类型  
        XmlSerializer serializer = new XmlSerializer(typeof(Person));  
          
        // 创建一个 StringReader 对象以读取字符串流中的XML数据  
        using (StringReader reader = new StringReader(xmlString))  
        {  
            // 调用反序列化方法,将XML数据转换为Person对象  
            Person person = (Person)serializer.Deserialize(reader);  
              
            // 输出反序列化后的对象属性值  
            Console.WriteLine($"Name: {person.Name}");  
            Console.WriteLine($"Age: {person.Age}");  
            Console.WriteLine($"Email: {person.Email}");  
        }  
    }  
}

在上面的代码中,我们首先创建了一个XmlSerializer的实例,并指定了要反序列化的类型为Person。然后,我们创建了一个StringReader来读取包含XML数据的字符串流。通过调用Deserialize方法,我们将XML数据转换成了Person对象,并输出了该对象的属性值。