Windowsphone 之xml序列化和反序列化的应用(WebService解析返回的数据DataSet )
关于Xml的序列化和反序列化:
可以看这篇文章,http://www.cnblogs.com/Windows-phone/p/3243575.html
WebService解析返回的数据DataSet
<?xml version="1.0" encoding="utf-8" ?> - <DataSet xmlns="http://WebXml.com.cn/"> - <xs:schema id="getRegion" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> - <xs:element name="getRegion" msdata:IsDataSet="true" msdata:UseCurrentLocale="true"> - <xs:complexType> - <xs:choice minOccurs="0" maxOccurs="unbounded"> - <xs:element name="Province"> - <xs:complexType> - <xs:sequence> <xs:element name="RegionID" type="xs:string" minOccurs="0" /> <xs:element name="RegionName" type="xs:string" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> - <xs:element name="Country"> - <xs:complexType> - <xs:sequence> <xs:element name="RegionID" type="xs:string" minOccurs="0" /> <xs:element name="RegionName" type="xs:string" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema> - <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"> - <getRegion xmlns=""> - <Province diffgr:id="Province1" msdata:rowOrder="0"> <RegionID>3113</RegionID> <RegionName>黑龙江</RegionName> </Province> - <Province diffgr:id="Province2" msdata:rowOrder="1"> <RegionID>3114</RegionID> <RegionName>吉林</RegionName> </Province> - <Province diffgr:id="Province3" msdata:rowOrder="2"> <RegionID>3115</RegionID> <RegionName>辽宁</RegionName> </Province> <Province diffgr:id="Province4" msdata:rowOrder="3"> <RegionID>3116</RegionID> <RegionName>内蒙古</RegionName> </Province> - <Province diffgr:id="Province5" msdata:rowOrder="4"> <RegionID>3117</RegionID> <RegionName>河北</RegionName> </Province> - <Province diffgr:id="Province6" msdata:rowOrder="5"> <RegionID>3118</RegionID> <RegionName>河南</RegionName> </Province> - <Province diffgr:id="Province7" msdata:rowOrder="6"> <RegionID>3119</RegionID> <RegionName>山东</RegionName> </Province> - ....... </getRegion>...
在我们获取了这个Xml数据之后,我们如何解析这段数据,并将该数据转换成Province集合呢?
代码如下:
static string head = "<?xml version=\"1.0\" encoding=\"utf-8\"?><Province>";
//static string tail = "</{0}>";
static string tail = "</Province>";
/// <summary>
/// 获取多个实体对象
/// </summary>
/// <typeparam name="T">实体类型</typeparam>
/// <param name="aoxe"></param>
/// <returns></returns>
public static ObservableCollection<T> GetAllEntitiesForDataSetXml<T>(ArrayOfXElement aoxe)
{
ObservableCollection<T> listT = new ObservableCollection<T>();
XmlSerializer serializer = new XmlSerializer(typeof(T));
T t = default(T);
try
{
].LastNode));//取出第二个结点中的内容
StringBuilder sb = new StringBuilder();
foreach (var item in content.Nodes())
{
//sb.Append(string.Format(head, typeof(T).Name));
sb.Append(head);
foreach (var obj in ((XElement)item).Nodes())
{
sb.Append(obj.ToString());
}
//sb.Append(string.Format(tail, typeof(T).Name));
sb.Append(tail);
string ss = sb.ToString();
StringReader sr = new StringReader(ss);
//反序列化,并将反序列化结果值赋给变量i
t = (T)serializer.Deserialize(sr);
listT.Add(t);
sr.Close();
sr.Dispose();
sb.Clear();
}
}
catch
{
}
return listT;
}
Windowsphone 之xml序列化和反序列化的应用(WebService解析返回的数据DataSet )的更多相关文章
- XML 序列化与反序列化
XML序列化与反序列化 1.将一个类转化为XML文件 /// <summary> /// 对象序列化成XML文件 /// </summary> /// <param na ...
- XmlSerializer 对象的Xml序列化和反序列化
http://www.cnblogs.com/yukaizhao/archive/2011/07/22/xml-serialization.html 这篇随笔对应的.Net命名空间是System.Xm ...
- C#的XML序列化及反序列化
webservice在工作中用到的很多,基本都是以XML格式问通讯内容,其中最关键的就是XML串的序列化及反序列化. XML的运用中有两种信息传递,一种为XML的请求信息,另一种为返回信息,要运用XM ...
- .NET XML序列化与反序列化
闲着没事,写了两个通用的XML序列化与反序列化的方法. 贴出来当作笔记吧! /// <summary> /// XML序列化 /// </summary> /// <ty ...
- XmlSerializer 对象的Xml序列化和反序列化,XMLROOT别名设置
这篇随笔对应的.Net命名空间是System.Xml.Serialization:文中的示例代码需要引用这个命名空间. 为什么要做序列化和反序列化? .Net程序执行时,对象都驻留在内存中:内存中 ...
- c# XML序列化与反序列化
c# XML序列化与反序列化 原先一直用BinaryFormatter来序列化挺好,可是最近发现在WinCE下是没有办法进行BinaryFormatter操作,很不爽,只能改成了BinaryWrite ...
- Xml序列化、反序列化帮助类
之前从网络上找了一个Xml处理帮助类,并整理了一下,这个帮助类针对Object类型进行序列化和反序列化,而不需要提前定义Xml的结构,把它放在这儿供以后使用 /// <summary> / ...
- Windows phone 之XML序列化与反序列化
为什么要做序列化和反序列化? 一个回答: 我们都知道对象是不能在网络中直接传输的,不过还有补救的办法.XML(Extensible Markup Language)可扩展标记语言,本身就被设计用来存储 ...
- C#操作Xml:XmlSerializer 对象的Xml序列化和反序列化
这篇随笔对应的.Net命名空间是System.Xml.Serialization:文中的示例代码需要引用这个命名空间. 为什么要做序列化和反序列化? .Net程序执行时,对象都驻留在内存中:内存中的对 ...
随机推荐
- forward和redirect 的区别
一.使用区别 1.从地址栏显示来说 forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来 ...
- 完美转换MySQL的字符集 Mysql 数据的导入导出,Mysql 4.1导入到4.0
MySQL从4.1版本开始才提出字符集的概念,所以对于MySQL4.0及其以下的版本,他们的字符集都是Latin1的,所以有时候需要对mysql的字符集进行一下转换,MySQL版本的升级.降级,特别是 ...
- C语言字节对齐 __align(),__attribute((aligned (n))),#pragma pack(n)
转载地址 : http://blog.csdn.net/21aspnet/article/details/6729724 一.概念 对齐跟数据在内存中的位置有关.如果一个变量的内存地址正好位于它 ...
- tomcat部署web项目的方式 转
JavaWeb开发Tomcat中三种部署项目的方法,开始Java web开发必不可少的步骤,经过查找,觉得有篇文章介绍的不错 1.在conf目录中新建Catalina\localhost目录,在该目录 ...
- 微信开发第5章 通过accesstoken获取用户基本信息并修改用户备注
在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的.对于不同公众号,同一用户的openid不同).公众号可通过本接口来根据Op ...
- 遇到java.lang.OutOfMemoryError: Java heap space问题【持续跟踪中...】
昨天下午app服务端无缘无故又502错了,我打开tomcat 日志: INFO: org.tuckey.web.filters.urlrewrite.UrlRewriteFilter DEBUG: i ...
- Character frequency
地址:http://www.codewars.com/kata/53e895e28f9e66a56900011a/train/python Write a function that takes a ...
- 初步掌握HBase
1.HBase概述 HBase是hadoop生态系统中的重要组成部分,是一个开源的.面向列.适合存储海量非结构化数据或半结构化数据,具备高可靠性.高性能.可灵活扩展伸缩.支持实时数据读写的分布式存储系 ...
- apache服务器php程序
1.全是.php结尾的.如何首页是index 2.安装完apache,如果输入 http://localhost:50/ 若出现 it works ,代表apache运作正常
- java 中能否使用 动态加载的类(Class.forName) 来做类型转换?
今天同事提出了一个问题: 将对象a 转化为类型b,b 的classpath 是在配置文件中配置的,需要在运行中使用Class.forName 动态load进来,因为之前从来没有想过类似的问题,所以懵掉 ...