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程序执行时,对象都驻留在内存中:内存中的对 ...
随机推荐
- 了解mongodb
本文大纲 基础了解mongodb(mongodb介绍,跟其他nosql区别,跟内存服务器区别等,使用场景) 在使用前,强力建议看哈http://wenku.baidu.com /link?url=lu ...
- S2SH+Hibernate search出现的问题
一 java.lang.NoSuchMethodError: org.hibernate.engine.transaction.spi.TransactionEnvironment.getJtaPl ...
- JavaScript- 省市联动代码
以下是JS省市联动菜单代码: 代码一: <html> <head> <title></title> <script language=" ...
- 解决IE11不能进行webTest脚本录制的方法
当win7的ie8升级到ie11后,我的vs2012里的web性能测试用不了了,在打开IE11后,录制栏不见了,在网上找了很多资料没有结果,最后,在IE工具里发展了原因 工具->管理加载项-&g ...
- Web资源文件的加载
一.关于页面跳转的一下几种方法: package com.gqx.load; import java.io.IOException; import java.io.PrintWriter; impor ...
- SSH框架总结(框架分析+环境搭建+实例源代码下载)
首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是眼下较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. 集成SSH框 ...
- XRDP与VNC的关系
如果仅仅安装XRDP协议.是不能在windows上使用远程桌面连接到Ubuntu. 还须要安装VNCServer才行. 所以,XRDP启动之后.系统会自己主动启动一个VNC会话进程监听服务. 当我们通 ...
- (亲测)设置myeclipse打开默认工作空间
亲测一: 1.找到D:\MyEclipse 8.5\configuration\ config.ini 这个文件 2.找到这一行instance.area.default 3.将后面的地址替换为你想要 ...
- [转]allocWithZone 和 单例模式
一.问题起源 一切起源于Apple官方文档里面关于单例(Singleton)的示范代码:Creating a Singleton Instance. 主要的争议集中在下面这一段: ? 1 2 3 4 ...
- C#实现Ruby的负数索引器
public class InvertibleList<T> : List<T> { public new T this[int index] { get { ) return ...