xml反序列化为实体
随着框架应用的扩大,我们越来越习惯去操作一个实体类,而很多的基于接口的开发,或者一些应用程序,在数据的传输方面都是传输xml数据文件。
如果要获得XML来文件的数据,可以使用xmlDocument对象来操作此XML文件,但是那样是比较繁琐的,而且准确率也要降低一些。对于XML的序列化,大家一定比较了解的了。
下面我就谈一下我的看法(最近正好遇到此类问题,所以去了解了一下):
下面就是一个xml文件
<?xml version="1.0" encoding="UTF-8"?>其实要构造出一个实体对象,也就是要自己写一个针对于这个xml文件的模版,也就是几个类文件。
<request>
<cqd id="1101">
<ckd_id>0328O02000001</ckd_id>
<item thd_id="200203281000001">
<quantity>1000</quantity>
</item>
</cqd>
<cqd id="1102">
<ckd_id>0328O02000014</ckd_id>
<item thd_id="200203291000012">
<quantity>500</quantity>
</item>
</cqd>
<name>lijun</name>
</request>
比如上面的<request>节点,就一个最大的实体对象,其实我知道在类里面,也就是存在属性,集合,对象。
<name>节点就是<request>对应这个类里面的一个属性,<cqd id="1101">节点因为是可以重复,而且里面也同时又包含了子节点,所以在<request>这个大类里面,我们定义为一个对象集合。<request>这个类的结构就基本已经出现了。假如我们命名为request.cs
同样就可以继续分析下一个节点了(<cqd>)!分析原理同上面一样,在反序列化的时候对于集合一定要标识[XmlElement(ElementName = "cqd")]
,节点的属性也同样要标志[XmlAttribute(AttributeName = "thd_id")]。
有个例子大家有兴趣的话,可以参考下!
download....