来数一数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 ...
随机推荐
- IT 运营架构杂谈【前言】
[ 什么是IT 服务 ?] OGC官方的ITIL 服务定义: 中文定义:实施和管理 IT 服务,满足业务的需要.IT 服务管理由IT 服务提供方通过人员.流程和信息技术的适当组合而进行. [ ...
- 第三百六十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的基本查询
第三百六十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的基本查询 1.elasticsearch(搜索引擎)的查询 elasticsearch是功能 ...
- MySQL 服务(mysqld)crash
场景: 数据从 10.165.98.190 自建MySQL同步至 阿里云 MongoDB过程中,mysql服务会崩溃,同步数据失败. 原因分析: 经DBA 分析,10.165.98.1 ...
- QComboBox:类似于的百度的搜索提示
参考: http://blog.csdn.net/lingchen214/article/details/17960789 http://blog.sina.com.cn/s/blog_a6fb6cc ...
- C# 窗体间传值(使用委托与自定义事件)
using System; using System.Drawing; using System.Windows.Forms; namespace 跨窗体调用控件 { public partial c ...
- Memcached Java Client比较
JAVA客户端调用memcached比较 Memcached 客户端程序三种API的比较 Java开发中的Memcache原理及实现(五)Memcached客户端
- 8.4 Java 命名规范
Class: 所有单词的首字母大写, TestJava Method: 第一个单词的首字母小写,之后每个单词的首字母大写, getAddressForMe() Property: 第一个单词的首字母小 ...
- SharePoint 2013 地址栏_layouts/15/start.aspx#
大家在使用SharePoint2013的时候是否发现,地址栏中显示的URL不再变得友好,多出这么一段“_layouts/15/start.aspx#”,怎么看怎么别扭. 如果要取消这段路径的显示,需要 ...
- UNIX环境编程学习笔记(11)——文件I/O之文件时间以及 utime 函数
lienhua342014-09-16 1 文件的时间 每个文件都有三个时间字段,如表 1 所示. 表 1: 文件的三个时间字段 说明 字段 st_atime 文件数据的最后访问时间 st_mtime ...
- Linux下修改MySql的root密码
linux下如何修改Mysql的root密码 今天,忘了mysql下的root密码,想重置一下,但找了多个网站上的方法均有问题,最后参考几家的过程,经过不断尝试获得,终于成功了,下面特将过程分 ...