现在的位置: 首页 > 综合 > 正文

xml反序列化为实体

2012年01月03日 ⁄ 综合 ⁄ 共 1000字 ⁄ 字号 评论关闭

随着框架应用的扩大,我们越来越习惯去操作一个实体类,而很多的基于接口的开发,或者一些应用程序,在数据的传输方面都是传输xml数据文件。
如果要获得XML来文件的数据,可以使用xmlDocument对象来操作此XML文件,但是那样是比较繁琐的,而且准确率也要降低一些。对于XML的序列化,大家一定比较了解的了。
下面我就谈一下我的看法(最近正好遇到此类问题,所以去了解了一下):

下面就是一个xml文件

<?xml version="1.0" encoding="UTF-8"?>     
<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>
其实要构造出一个实体对象,也就是要自己写一个针对于这个xml文件的模版,也就是几个类文件。
比如上面的<request>节点,就一个最大的实体对象,其实我知道在类里面,也就是存在属性,集合,对象。
<name>节点就是<request>对应这个类里面的一个属性,<cqd id="1101">节点因为是可以重复,而且里面也同时又包含了子节点,所以在<request>这个大类里面,我们定义为一个对象集合。<request>这个类的结构就基本已经出现了。假如我们命名为request.cs

同样就可以继续分析下一个节点了(<cqd>)!分析原理同上面一样,在反序列化的时候对于集合一定要标识[XmlElement(ElementName = "cqd")]
,节点的属性也同样要标志[XmlAttribute(AttributeName = "thd_id")]。
有个例子大家有兴趣的话,可以参考下!
download....

抱歉!评论已关闭.