最近在看一些接口,所以目标就是写接口啦,但是我想说的是公司的业务还不曾了解,所以自己先来做一个小小的demo练习吧,主要知道需要和xml有关系的,但是之前从来没有接触过解析xml文件的,在玩撒谎能够搜索啦许多有关解析xml的方法,但是没有适合自己的,所以就提前写一个demo吧,嘿嘿,更加熟悉一些。如果使用C#语言去解析xml文件,可能对于我来说也是一种进步,这里就在友友给提供的小demo的前提下我也来总结一下吧,嘿嘿。

这里就是简单的做的一个控制台程序,然后把解析以及转换成dataset这样的数据都是在webservice中实现,然后再转换成流的形式接收回来...

        static void Main(string[] args)
{
string xmldata = "<item>"
+"<name>dulala</name>"
+"<pwd>20</pwd>"
+ "<address>北京朝阳</address>"
+"</item>";
ServiceReference1.WebService1SoapClient client = new ServiceReference1.WebService1SoapClient();
byte[] buttfer = client.GetWebService(xmldata);
DataSet resultds = null;
using (MemoryStream ms = new MemoryStream(buttfer))
{
IFormatter im = new BinaryFormatter();
object obj = im.Deserialize(ms);
resultds = (DataSet)obj;
}
}

这里就是写在webservice中的方法:

    public class GetWebService : System.Web.Services.WebService
{
public DataTable dt = new DataTable();
[WebMethod]
public byte[] GetProductXml(string xmldata)
{
#region 获取xml数据,制作键 DataSet ds1 = new DataSet();
DataColumn dca = new DataColumn("Username", System.Type.GetType("System.String"));
dt.Columns.Add(dca);
DataColumn dcb = new DataColumn("pwd", System.Type.GetType("System.String"));
dt.Columns.Add(dcb);
DataColumn dcc = new DataColumn("address", System.Type.GetType("System.String"));
dt.Columns.Add(dcc);
#endregion XmlDocument doc = new XmlDocument();
doc.LoadXml(xmldata);//解析xml数据
XmlNode xmlNode = doc.DocumentElement;//文件的节点 #region 把xml数据添加到sataset
XmlNode xxx = xmlNode.SelectSingleNode("item");
string statusCode = string.Empty;
DataRow dr = dt.NewRow();
foreach (XmlNode xn in xxx.ChildNodes)
{
XmlElement zsl_el = (XmlElement)xn;
if (xn.LocalName == "Username")
{
dr["Username"] = zsl_el.InnerText;
}
if (xn.LocalName == "pwd")
{
dr["pwd"] = zsl_el.InnerText;
}
if (xn.LocalName == "address")
{
statusCode = zsl_el.InnerText;
dr["address"] = zsl_el.InnerText;
}
}
dt.Rows.Add(dr);
#endregion ds1.Tables.Add(dt);
byte[] dataBuffer = null;
if (ds1 != null && ds1.Tables[].Rows.Count > )
{
ds1.RemotingFormat = SerializationFormat.Binary;
IFormatter bf = new BinaryFormatter(); using (MemoryStream ms = new MemoryStream())
{
bf.Serialize(ms, ds1);
dataBuffer = ms.ToArray();
}
}
return dataBuffer;
}
}

好啦,代码就展示到这里啦,暂时去实现一下其他的东东哦,嘿嘿

来数一数XML解析成为Dataset数据的更多相关文章

  1. Xml解析之PULL解析 例2

    <?xml version="1.0" encoding="UTF-8"?> <books> <book id="100 ...

  2. XML解析的四种方式

    1.说明 XML是EXtensible Markup Language, 即可扩展标记语言, 是一种通用的数据交换格式, 它的平台无关性.语言无关性.系统无关性, 给数据集成与交互带来了极大的方便. ...

  3. Windowsphone 之xml序列化和反序列化的应用(WebService解析返回的数据DataSet )

    关于Xml的序列化和反序列化: 可以看这篇文章,http://www.cnblogs.com/Windows-phone/p/3243575.html WebService解析返回的数据DataSet ...

  4. Duilib源码分析(三)XML解析器—CMarkup

    上一节介绍了控件构造器CDialogBuilder,接下来将分析其XML解析器CMarkup: CMarkup:xml解析器,目前内置支持三种编码格式:UTF8.UNICODE.ASNI,默认为UTF ...

  5. xml解析工具-jdom

    前言:近期接触SSH框架的时候,经常得配置一下xml文件:今天闲来没事就挖挖xml解析的原理供大伙儿分享.本文主要通过一个简单的例子解析一个xml文件.明白其中缘由之后,大家想定义自己的xml也绝非难 ...

  6. iOS -数据库网络之xml解析之远程解析XML

    1.IOS中XML文件获取    //设置远程访问地址     NSURL *url=[NSURL URLWithString:@""];       //创建动态URL请求,并初 ...

  7. iOS -数据库网络之xml解析

    XML文件有2种解析方式 1.基于文档(document) 2.基于事件(sax)   1.IOS中XML文件获取   首先要将XML导入工程中 在ViewController的按钮事件中,代码如下: ...

  8. UI进阶 解析XML 解析JSON

    1.数据解析 解析的基本概念 所谓“解析”:从事先规定好的格式中提取数据 解析的前提:提前约定好格式,数据提供方按照格式提供数据.数据获取方则按照格式获取数据 iOS开发常见的解析:XML解析.JSO ...

  9. Android xml 解析

    XML 经常使用的三种解析方式: DOM: 所有载入到内存,生成一个树状结构,占用内存比較大. SAJ: 採用事件驱动,速度快,效率高,不支持回退. PULL:也是採用事件驱动,语法简洁. 步骤: 1 ...

随机推荐

  1. 关于Unity中的光照(六)

    反射探头 1:镜子金属等具有光滑表面的物体都会反射,而游戏中计算实时反射非常消耗CPU的资源, unity5.0新增了一个反射探头的技术,通过采样点,生成反射Cubemap,然后通过特定的着色器从Cu ...

  2. 基于jquery的ui选择之路

    选定: 主框架:jqueryUi tree:ztree grid:jqGrid layout:jquery.layout 原由: 还有其他demo,ajax实现等参看连接: 正在做的一个项目选择jqu ...

  3. 技能UP:SAP CO掌上配置手册

    No. 配置对象 事务代码 路径 1 Enterprise Structure and General Controlling configration       Maintain EC-PCA : ...

  4. 【Mysql】Mysql修改Root密码

    1.用命令编辑/etc/my.cnf配置文件,即:vim /etc/my.cnf 或者 vi /etc/my.cnf 或者 nano /etc/my.cnf 2.在[mysqld]下添加skip-gr ...

  5. 网络中TCP、IP、MAC、UDP的头部格式信息

    TCP头部格式 字段名称 长度(比特) 含义 TCP头部(20字节~) 发送方端口号 16 发送网络包的程序的端口号 接收方端口号 16 网络包的接收方程序的端口号 序号(发送数据的顺序编号) 32 ...

  6. Hessian示例:Java和C#通信

    一个简单的利用Hessian在Java和C#之间通信的例子,服务端为Java,客户端为C#. 资源下载 先要准备好C#和Java的第三方类库:http://hessian.caucho.com/ Hs ...

  7. keystone源码分析(一)——Paste Deploy的应用

    本keystone源码分析系列基于Juno版Keystone,于2014年10月16日随Juno版OpenStack发布. Keystone作为OpenStack中的身份管理与授权模块,主要实现系统用 ...

  8. R语言ggplot2中的panel. strip 基本概念

    ggplot2 是一套独立的绘图系统,在一个完整的ggplot2的图表中,会有下面几个概念: 1) plot 2) panel 3) strip 4) legend 所有这些元素都会出现在图表中 代码 ...

  9. 纯CSS3实现牛奶般剔透的3D按钮特效

    今天我们要来看一款非常特别的纯CSS3 3D按钮,它的外观酷似纯白剔透的牛奶,点击按钮的时候还会出现一种很柔和的弹力效果.按钮按下时,按钮会轻轻的弹动一下,非常逼真.本文我们在观赏演示的同时,也将源代 ...

  10. DIV 自定义滚动条样式

    当内容超出容器时,容器会出现滚动条,其自带的滚动条有时无法满足我们审美要求,那么我们可以通过css伪类来实现对滚动条的自定义. 首先我们要了解滚动条.滚动条从外观来看是由两部分组成:1,可以滑动的部分 ...