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程序执行时,对象都驻留在内存中:内存中的对 ...
随机推荐
- 3 weekend110的配置hadoop(格式化) + 一些问题解决 + 未免密码配置
由于,之前,已经在/etc/profile里,配置了hadoop的全局变量,所以,现在可以在任何路径下执行hadoop命令. 来玩玩, 其实啊,在这里,出现了错误, 参考解决链接: http://it ...
- 【转】shell 教程——05 第一个Shell脚本
打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名就用php好了. 输入一些代码: #!/bin/bash ...
- 【转】shell 教程——04 什么时候使用Shell
因为Shell似乎是各UNIX系统之间通用的功能,并且经过了POSIX的标准化.因此,Shell脚本只要“用心写”一次,即可应用到很多系统上.因此,之所以要使用Shell脚本是基于: 简单性:Shel ...
- hdoj 1787 GCD Again【欧拉函数】
GCD Again Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- 探讨Web组件化的实现
CMS组件化,简单架构示意图: Web组件使用WebPage+WebAPI的好处: Ø 组件复用(组件条件管理页面复用+获取组件数据API复用). Ø 组件是分布式的第三方应用,本身高内聚.组件之 ...
- Jquery- 错误消息"Date"未定义,"String"未定义
在jquery的高版本(1.7-1.9)提示“String”未定义,稍低版本提示“Date”未定义错误 解决办法: 1.找到你发生错误的代码(即执行那条代码时发生的错误) 2.使用setTimeout ...
- Ubuntu14.04搭建cocos2dx2.2.5开发环境(超级具体)
一 下载解压 官方下载地址:http://www.cocos2d-x.org/download 下载下来之后解压完毕之后会得到一个文件夹cocos2d-x-2.2.5 二 编译 1 安装依赖 cd到c ...
- Ajax-$.ajax()方法详解
jquery中的ajax方法参数总是记不住,这里记录一下. 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(p ...
- sqlServer将多字段设为主键方法
补充一下关于数据库多字段复合主键的设置. 首先一个表是不能有多个主键的.但是可以有多个字段组合成一个主键,这就是为什么有时候表里为什么会有多个字段都有主键的标志,那是因为他们组合成了一个主键了.我们可 ...
- Hrbust1328 相等的最小公倍数 (筛素数,素因子分解)
本文出自:http://blog.csdn.net/svitter/ 题意: 求解An 与 An-1是否相等. n分为两个情况-- 1.n为素数, 2.n为合数. = =好像说了个废话..素数的时候 ...