在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
对象,并输出了该对象的属性值。