将XML数据映射到C#中的类
本文关键字:XML 数据 映射 | 更新日期: 2023-09-27 18:01:06
如果我有一个外部XML提要和一个内部类,那么自动读取提要并将数据映射到类的新实例的最佳方法是什么?
因此,如果xml提要类似
<people>
<person>
<name>Bob</name>
</person>
<person>
<name>Bill</name>
</person>
</people>
我的类Person有一个属性Name。现在我正在使用XmlReader,但这似乎效率低下
在c#中将xml映射到类中最简单的方法是使用xml序列化。.Net框架提供了您所需要的一切。问题是,您的xml需要采用rigth格式才能由反序列化程序读取。
序列化示例:
XmlSerializer serializer = new XmlSerializer(typeof(List<Person>));
TextWriter textWriter = new StreamWriter("people.xml");
serializer.Serialize(textWriter, people);
textWriter.Close();
反序列化示例
XmlSerializer deserializer = new XmlSerializer(typeof(List<Person>));
TextReader textReader = new StreamReader("people.xml");
List<Person> people;
people= (List<Person>)deserializer.Deserialize(textReader);
textReader.Close();
XML结果
xml应该是这样的(我没有测试它(:
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfPerson xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Person>
<Name>Bob</Name>
</Person>
<Person>
<Name>Bill</Name>
</Person>
</ArrayOfPerson>