asp.net类序列化生成xml文件实例详解

根据设计的需求需要开发多个商品的API 原XML文件如下:

<urlset> <url> <loc>?id=143</loc> <data> <display> <website>爱购114</website> <siteurl></siteurl> <city>杭州</city> <webSitetitle></webSitetitle> <image></image> <startTime>2011-2-9</startTime> <endTime>2011-2-15</endTime> <value>3880</value> <price>2088</price> <rebate>0.53</rebate> <bought>0</bought> </display> </data> </url> </urlset>

现在需求是要根据数据库有几条商品信息 相应的API XML文件出现几个URL节点! 采用类序列化成XML文件然后读取相应生成的XML文件就可以展示多个商品XML的信息 实现代码如下:

首先定义好XML 各个节点的数据及父子节点的关系类:

#region 定义数据实体类xml数据结构 public class urlset { public List<url> urlList { get; set; } } public class url { public string loc { get; set; } public List<data> dataList { get; set; } } public class data { public List<display> displayList { get; set; } } public class display { public string website { get; set; } public string siteurl { get; set; } public string city { get; set; } public string webSitetitle { get; set; } public string image { get; set; } public string startTime { get; set; } public string endTime { get; set; } public double value { get; set; } public double price { get; set; } public double rebate { get; set; } public int bought { get; set; } } #endregion

第二步:#region 定义获取网站信息实体类

public class WebSiteInfo { /// <summary> /// 商品标题 /// </summary> public string title { get; set; } /// <summary> /// 商品发布时间 /// </summary> public DateTime createtime { get; set; } /// <summary> /// 商品图片 /// </summary> public string productimg { get; set; } /// <summary> /// 市场价 /// </summary> public decimal market_price { get; set; } /// <summary> /// 团购价 /// </summary> public decimal team_price { get; set; } /// <summary> /// 折扣价 /// </summary> public decimal zhekou_price { get; set; } /// <summary> /// 城市名称 /// </summary> public string cityName { get; set; } /// <summary> /// 商品开始时间 /// </summary> public DateTime begin_time { get; set; } /// <summary> /// 结束时间 /// </summary> public DateTime end_time { get; set; } /// <summary> /// 商家名称 /// </summary> public string merchants_id { get; set; } /// <summary> /// 本单详情 /// </summary> public string description { get; set; } /// <summary> /// 最低购买人数 /// </summary> public int lowBuNo { get; set; } /// <summary> /// 商家地址 /// </summary> public string Address { get; set; } /// <summary> /// 商家电话 /// </summary> public string Telphone { get; set; } /// <summary> /// 城市区号 /// </summary> public string cCode { get; set; } /// <summary> /// 文件夹名称 /// </summary> public string folderName { get; set; } /// <summary> /// 团购状态 /// </summary> public string StatusMessage { get; set; } /// <summary> /// 现在购买人数 /// </summary> public int nownumber { get; set; } /// <summary> /// 商品编号 /// </summary> public int productID { get; set; } } #endregion

第三步:获取数据库商品信息记录并添加到对象的集合中(Arraylist):

#region 获取xml实体类信息 /// <summary> /// 获取xml实体类信息 /// </summary> /// <returns></returns> public static ArrayList GetWebModelInfo() { ArrayList list = new ArrayList(); string strSQL = "select a.id, a.merchantsID,a.cCode,a.prodCode,a.statue,a.now_number, a.title,a.createtime,a.productimg,a.market_price,a.team_price,a.zhekou_price,a.cityName,a.begin_time,a.end_time,a.description,a.lowBuyNo,b.Address,b.Tel from tg_product as a left join tg_merchants as b on a.merchantsID=b.merchants_id where a.ispublic=1 and statue>-1 and getdate()<dateadd(day,1,a.end_time) order by a.createtime desc"; DataSet ds = FrameWork.Data.SqlHelper.ReturnDataSet(CommandType.Text, strSQL, null); if (ds.Tables[0].Rows.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { WebSiteInfo webModel = new WebSiteInfo(); //城市名称 webModel.cityName = dr["cityName"].ToString(); //商品标题 webModel.title = dr["title"].ToString(); //商品创建时间 webModel.createtime = Convert.ToDateTime(dr["createtime"].ToString()); //商家名称 webModel.merchants_id = dr["merchantsID"].ToString(); //商品图片 webModel.productimg = dr["productimg"].ToString(); //市场价 webModel.market_price = Convert.ToDecimal(dr["market_price"].ToString()); //团购价 webModel.team_price = Convert.ToDecimal(dr["team_price"].ToString()); //折扣价 webModel.zhekou_price = Convert.ToDecimal(dr["zhekou_price"].ToString()); //开始时间 webModel.begin_time = Convert.ToDateTime(dr["begin_time"].ToString()); //结束时间 webModel.end_time = Convert.ToDateTime(dr["end_time"].ToString()); //商品说明 webModel.description = dr["description"].ToString(); //最低购买数量 webModel.lowBuNo = Convert.ToInt32(dr["lowBuyNo"].ToString()); //商家电话 webModel.Telphone = dr["Tel"].ToString(); //商家地址 webModel.Address = dr["Address"].ToString(); //城市编号 webModel.cCode = dr["cCode"].ToString(); //图片文件夹名称 webModel.folderName = dr["prodCode"].ToString(); //现在购买人数 webModel.nownumber = Convert.ToInt32(dr["now_number"].ToString()); //商品编号 webModel.productID = Convert.ToInt32(dr["id"].ToString()); int status = Convert.ToInt32(dr["statue"].ToString()); switch (status) { case 0: webModel.StatusMessage = "结束"; break; case 1: webModel.StatusMessage = "成功"; break; } list.Add(webModel); } } return list; } #endregion

最后一步将数据库读取来的信息赋值到XML 数据类型中 并序列化成XML文件保存成XML格式的文件读取文件展现到界面:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjwjxx.html