标签:
最近在看一些接口,所以目标就是写接口啦,但是我想说的是公司的业务还不曾了解,所以自己先来做一个小小的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[0].Rows.Count > 0) { ds1.RemotingFormat = SerializationFormat.Binary; IFormatter bf = new BinaryFormatter(); using (MemoryStream ms = new MemoryStream()) { bf.Serialize(ms, ds1); dataBuffer = ms.ToArray(); } } return dataBuffer; } }
好啦,代码就展示到这里啦,暂时去实现一下其他的东东哦,嘿嘿
标签:
原文地址:http://www.cnblogs.com/dyxd/p/4801444.html