来数一数XML解析成为Dataset数据
最近在看一些接口,所以目标就是写接口啦,但是我想说的是公司的业务还不曾了解,所以自己先来做一个小小的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数据的更多相关文章
- Xml解析之PULL解析 例2
<?xml version="1.0" encoding="UTF-8"?> <books> <book id="100 ...
- XML解析的四种方式
1.说明 XML是EXtensible Markup Language, 即可扩展标记语言, 是一种通用的数据交换格式, 它的平台无关性.语言无关性.系统无关性, 给数据集成与交互带来了极大的方便. ...
- Windowsphone 之xml序列化和反序列化的应用(WebService解析返回的数据DataSet )
关于Xml的序列化和反序列化: 可以看这篇文章,http://www.cnblogs.com/Windows-phone/p/3243575.html WebService解析返回的数据DataSet ...
- Duilib源码分析(三)XML解析器—CMarkup
上一节介绍了控件构造器CDialogBuilder,接下来将分析其XML解析器CMarkup: CMarkup:xml解析器,目前内置支持三种编码格式:UTF8.UNICODE.ASNI,默认为UTF ...
- xml解析工具-jdom
前言:近期接触SSH框架的时候,经常得配置一下xml文件:今天闲来没事就挖挖xml解析的原理供大伙儿分享.本文主要通过一个简单的例子解析一个xml文件.明白其中缘由之后,大家想定义自己的xml也绝非难 ...
- iOS -数据库网络之xml解析之远程解析XML
1.IOS中XML文件获取 //设置远程访问地址 NSURL *url=[NSURL URLWithString:@""]; //创建动态URL请求,并初 ...
- iOS -数据库网络之xml解析
XML文件有2种解析方式 1.基于文档(document) 2.基于事件(sax) 1.IOS中XML文件获取 首先要将XML导入工程中 在ViewController的按钮事件中,代码如下: ...
- UI进阶 解析XML 解析JSON
1.数据解析 解析的基本概念 所谓“解析”:从事先规定好的格式中提取数据 解析的前提:提前约定好格式,数据提供方按照格式提供数据.数据获取方则按照格式获取数据 iOS开发常见的解析:XML解析.JSO ...
- Android xml 解析
XML 经常使用的三种解析方式: DOM: 所有载入到内存,生成一个树状结构,占用内存比較大. SAJ: 採用事件驱动,速度快,效率高,不支持回退. PULL:也是採用事件驱动,语法简洁. 步骤: 1 ...
随机推荐
- 关于Unity中定时器的简易使用
定时器 一段指定的时间后执行某个函数或者某个语句 用法 //定时器写法1 flaot total_time; void Update(){ this.total_time += (Time.delta ...
- 性能优化系列三:JVM优化
一.几个基本概念 GCRoots对象都有哪些 所有正在运行的线程的栈上的引用变量.所有的全局变量.所有ClassLoader... 1.System Class.2.JNI Local3.JNI Gl ...
- python_程序模拟浏览器请求及会话保持
python下读取一个页面的数据可以通过urllib2轻松实现请求 import urllib2 print urllib2.urlopen('http://www.baidu.com').read( ...
- mybatis plus 联合查询
在xml中只需要需要写如下的代码即可实现分页: <select id="selectUserList" parameterType="map" resul ...
- 绝对震撼 10个实用的jQuery/HTML5插件
在HTML5的世界里,我们见证了无数的特效奇迹,但很多特效我们很难在网页中应用,今天我们要分享10款效果震撼但是又比较实用的jQuery/HTML5插件,希望这些项目在应用的过程中也能给你带来设计灵感 ...
- 安装tensorflow出现问题的解法
在ubuntu14.04用pip安装tensorflow-gpu 安装1.3.0遇到问题 1.安装tensorflow出现Cannot uninstall 'six'.问题的解法 https://bl ...
- jsTree 插件Ajax数据
完整代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta ...
- GCT之数学公式(微积分)
- Android 代码自动提示功能
Eclipse for android 实现代码自动提示智能提示功能,介绍 Eclipse for android 编辑器中实现两种主要文件 java 与 xml 代码自动提示功能,解决 eclips ...
- difference between TotalFreeSpace and AvailableFreeSpace
Refer:http://stackoverflow.com/questions/7275806/what-is-the-difference-between-totalfreespace-and-a ...