• 来数一数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[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;
            }
        }

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

  • 相关阅读:
    怎么判断自己在不在一家好公司?
    超全!互联网大厂的薪资和职级一览
    Nginx 又一牛 X 功能!流量拷贝
    时间管理之四象限法则
    罗永浩一个坑位卖60万脏钱背后:放下面子赚钱,才是成年人最大的体面
    2020 年 4月全国程序员工资出炉
    一次 SQL 查询优化原理分析(900W+ 数据,从 17s 到 300ms)
    “Hey Siri” 背后的黑科技大揭秘!
    一文讲透高薪的本质!
    python UnicodeDecodeError: 'gbk' codec can't decode byte 0x99 in position 87: illegal multibyte sequence异常解决
  • 原文地址:https://www.cnblogs.com/dyxd/p/4801444.html
Copyright © 2020-2023  润新知