麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > .NET > 正文

asp.net類序列化生成xml文件實(shí)例詳解

2024-07-10 13:29:41
字體:
供稿:網(wǎng)友

這篇文章主要介紹了asp.net類序列化生成xml文件的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了asp.net序列化生成xml文件的具體步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了asp.net類序列化生成xml文件的方法。分享給大家供大家參考,具體如下:

根據(jù)設(shè)計(jì)的需求需要開發(fā)多個(gè)商品的API 原XML文件如下:

 

 
  1. <urlset> 
  2. <url> 
  3. <loc>http://www.xxxxx.com/todaydetials.aspx?id=143</loc> 
  4. <data> 
  5. <display> 
  6. <website>愛購(gòu)114</website> 
  7. <siteurl>http://www.xxxxx.com/</siteurl> 
  8. <city>杭州</city> 
  9. <webSitetitle></webSitetitle> 
  10. <image></image> 
  11. <startTime>2011-2-9</startTime> 
  12. <endTime>2011-2-15</endTime> 
  13. <value>3880</value> 
  14. <price>2088</price> 
  15. <rebate>0.53</rebate> 
  16. <bought>0</bought> 
  17. </display>  
  18. </data> 
  19. </url> 
  20. </urlset> 

現(xiàn)在需求是要根據(jù)數(shù)據(jù)庫(kù)有幾條商品信息 相應(yīng)的API XML文件出現(xiàn)幾個(gè)URL節(jié)點(diǎn)! 采用類序列化成XML文件然后讀取相應(yīng)生成的XML文件就可以展示多個(gè)商品XML的信息 實(shí)現(xiàn)代碼如下:

首先定義好XML 各個(gè)節(jié)點(diǎn)的數(shù)據(jù)及父子節(jié)點(diǎn)的關(guān)系類:

 

 
  1. #region 定義數(shù)據(jù)實(shí)體類xml數(shù)據(jù)結(jié)構(gòu) 
  2. public class urlset 
  3. public List<url> urlList 
  4. get; 
  5. set; 
  6. public class url 
  7. public string loc 
  8. get; 
  9. set; 
  10. public List<data> dataList 
  11. get; 
  12. set; 
  13. public class data 
  14. public List<display> displayList 
  15. get; 
  16. set; 
  17. public class display 
  18. public string website 
  19. get; 
  20. set; 
  21. public string siteurl 
  22. get; 
  23. set; 
  24. public string city 
  25. get; 
  26. set; 
  27. public string webSitetitle 
  28. get; 
  29. set; 
  30. public string image 
  31. get; 
  32. set; 
  33. public string startTime 
  34. get; 
  35. set; 
  36. public string endTime 
  37. get; 
  38. set; 
  39. public double value 
  40. get; 
  41. set; 
  42. public double price 
  43. get; 
  44. set; 
  45. public double rebate 
  46. get; 
  47. set; 
  48. public int bought 
  49. get; 
  50. set; 
  51. #endregion 

第二步:#region 定義獲取網(wǎng)站信息實(shí)體類

 

 
  1. public class WebSiteInfo 
  2. /// <summary> 
  3. /// 商品標(biāo)題 
  4. /// </summary> 
  5. public string title { get; set; } 
  6. /// <summary> 
  7. /// 商品發(fā)布時(shí)間 
  8. /// </summary> 
  9. public DateTime createtime { get; set; } 
  10. /// <summary> 
  11. /// 商品圖片 
  12. /// </summary> 
  13. public string productimg { get; set; } 
  14. /// <summary> 
  15. /// 市場(chǎng)價(jià) 
  16. /// </summary> 
  17. public decimal market_price { get; set; } 
  18. /// <summary> 
  19. /// 團(tuán)購(gòu)價(jià) 
  20. /// </summary> 
  21. public decimal team_price { get; set; } 
  22. /// <summary> 
  23. /// 折扣價(jià) 
  24. /// </summary> 
  25. public decimal zhekou_price { get; set; } 
  26. /// <summary> 
  27. /// 城市名稱  
  28. /// </summary> 
  29. public string cityName { get; set; } 
  30. /// <summary> 
  31. /// 商品開始時(shí)間 
  32. /// </summary> 
  33. public DateTime begin_time { get; set; } 
  34. /// <summary> 
  35. /// 結(jié)束時(shí)間 
  36. /// </summary> 
  37. public DateTime end_time { get; set; } 
  38. /// <summary> 
  39. /// 商家名稱 
  40. /// </summary> 
  41. public string merchants_id { get; set; } 
  42. /// <summary> 
  43. /// 本單詳情 
  44. /// </summary> 
  45. public string description { get; set; } 
  46. /// <summary> 
  47. /// 最低購(gòu)買人數(shù) 
  48. /// </summary> 
  49. public int lowBuNo { get; set; } 
  50. /// <summary> 
  51. /// 商家地址 
  52. /// </summary> 
  53. public string Address { get; set; } 
  54. /// <summary> 
  55. /// 商家電話 
  56. /// </summary> 
  57. public string Telphone { get; set; } 
  58. /// <summary> 
  59. /// 城市區(qū)號(hào) 
  60. /// </summary> 
  61. public string cCode { get; set; } 
  62. /// <summary> 
  63. /// 文件夾名稱 
  64. /// </summary> 
  65. public string folderName { get; set; } 
  66. /// <summary> 
  67. /// 團(tuán)購(gòu)狀態(tài)  
  68. /// </summary> 
  69. public string StatusMessage { get; set; } 
  70. /// <summary> 
  71. /// 現(xiàn)在購(gòu)買人數(shù) 
  72. /// </summary> 
  73. public int nownumber { get; set; } 
  74. /// <summary> 
  75. /// 商品編號(hào) 
  76. /// </summary> 
  77. public int productID { get; set; } 
  78. #endregion 

第三步:獲取數(shù)據(jù)庫(kù)商品信息記錄并添加到對(duì)象的集合中(Arraylist):

 

 
  1. #region 獲取xml實(shí)體類信息 
  2. /// <summary> 
  3. /// 獲取xml實(shí)體類信息 
  4. /// </summary> 
  5. /// <returns></returns> 
  6. public static ArrayList GetWebModelInfo() 
  7. ArrayList list = new ArrayList(); 
  8. 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"
  9. DataSet ds = FrameWork.Data.SqlHelper.ReturnDataSet(CommandType.Text, strSQL, null); 
  10. if (ds.Tables[0].Rows.Count > 0) 
  11. foreach (DataRow dr in ds.Tables[0].Rows) 
  12. WebSiteInfo webModel = new WebSiteInfo(); 
  13. //城市名稱 
  14. webModel.cityName = dr["cityName"].ToString(); 
  15. //商品標(biāo)題 
  16. webModel.title = dr["title"].ToString(); 
  17. //商品創(chuàng)建時(shí)間 
  18. webModel.createtime = Convert.ToDateTime(dr["createtime"].ToString()); 
  19. //商家名稱 
  20. webModel.merchants_id = dr["merchantsID"].ToString(); 
  21. //商品圖片 
  22. webModel.productimg = dr["productimg"].ToString(); 
  23. //市場(chǎng)價(jià) 
  24. webModel.market_price = Convert.ToDecimal(dr["market_price"].ToString()); 
  25. //團(tuán)購(gòu)價(jià) 
  26. webModel.team_price = Convert.ToDecimal(dr["team_price"].ToString()); 
  27. //折扣價(jià) 
  28. webModel.zhekou_price = Convert.ToDecimal(dr["zhekou_price"].ToString()); 
  29. //開始時(shí)間 
  30. webModel.begin_time = Convert.ToDateTime(dr["begin_time"].ToString()); 
  31. //結(jié)束時(shí)間 
  32. webModel.end_time = Convert.ToDateTime(dr["end_time"].ToString()); 
  33. //商品說明 
  34. webModel.description = dr["description"].ToString(); 
  35. //最低購(gòu)買數(shù)量 
  36. webModel.lowBuNo = Convert.ToInt32(dr["lowBuyNo"].ToString()); 
  37. //商家電話 
  38. webModel.Telphone = dr["Tel"].ToString(); 
  39. //商家地址 
  40. webModel.Address = dr["Address"].ToString(); 
  41. //城市編號(hào) 
  42. webModel.cCode = dr["cCode"].ToString(); 
  43. //圖片文件夾名稱 
  44. webModel.folderName = dr["prodCode"].ToString(); 
  45. //現(xiàn)在購(gòu)買人數(shù) 
  46. webModel.nownumber = Convert.ToInt32(dr["now_number"].ToString()); 
  47. //商品編號(hào) 
  48. webModel.productID = Convert.ToInt32(dr["id"].ToString()); 
  49. int status = Convert.ToInt32(dr["statue"].ToString()); 
  50. switch (status) 
  51. case 0: 
  52. webModel.StatusMessage = "結(jié)束"
  53. break
  54. case 1: 
  55. webModel.StatusMessage = "成功"
  56. break
  57. list.Add(webModel); 
  58. return list; 
  59. #endregion 

最后一步將數(shù)據(jù)庫(kù)讀取來的信息賦值到XML 數(shù)據(jù)類型中 并序列化成XML文件保存成XML格式的文件讀取文件展現(xiàn)到界面:

 

 
  1. #region 頁(yè)面加載 根據(jù)數(shù)據(jù)庫(kù)商品記錄數(shù)生成xml文件信息 
  2. /// <summary> 
  3. /// 頁(yè)面加載 根據(jù)數(shù)據(jù)庫(kù)商品記錄數(shù)生成xml文件信息 
  4. /// </summary> 
  5. List<url> urlList = null
  6. urlset urlsetList = new urlset(); 
  7. protected void Page_Load(object sender, EventArgs e) 
  8. if (!Page.IsPostBack) 
  9. ArrayList listinfo=GetWebModelInfo(); 
  10. urlList = new List<url>(); 
  11. for (int i = 0; i < listinfo.Count; i++) 
  12. WebSiteInfo webInfo = listinfo[i] as WebSiteInfo; 
  13. List<display> displayList = new List<display>(); 
  14. display display = new display(); 
  15. display.website = "愛購(gòu)114"
  16. display.siteurl = "http://www.xxxxx.com/"
  17. //城市名稱 
  18. display.city = webInfo.cityName; 
  19. //商品標(biāo)題 
  20. display.webSitetitle = webInfo.title; 
  21. //商品圖片 
  22. display.image = "http://211.155.235.30/tuangou/" + webInfo.folderName + "/" + webInfo.productimg; 
  23. //商品開始時(shí)間 
  24. display.startTime = webInfo.begin_time.ToShortDateString(); 
  25. //商品結(jié)束時(shí)間 
  26. display.endTime = webInfo.end_time.ToShortDateString(); 
  27. //市場(chǎng)價(jià) 
  28. display.value = Convert.ToDouble(webInfo.market_price); 
  29. //團(tuán)購(gòu)價(jià) 
  30. display.price = Convert.ToDouble(webInfo.team_price); 
  31. //折扣價(jià) 
  32. display.rebate = Convert.ToDouble(webInfo.zhekou_price); 
  33. //現(xiàn)在購(gòu)買的人數(shù) 
  34. display.bought = webInfo.nownumber; 
  35. displayList.Add(display); 
  36. List<data> dataList = new List<data>(); 
  37. data data = new data(); 
  38. data.displayList = displayList; 
  39. dataList.Add(data); 
  40. url url = new url(); 
  41. url.loc = String.Format("http://www.xxxxx.com/todaydetials.aspx?id={0}", webInfo.productID.ToString()); 
  42. url.dataList = dataList; 
  43. urlList.Add(url); 
  44. urlsetList.urlList = urlList; 
  45. try 
  46. XmlSerializerNamespaces xmlns = new XmlSerializerNamespaces(); 
  47. xmlns.Add(String.Empty, String.Empty); 
  48. //構(gòu)造字符串 
  49. StringBuilder sb = new StringBuilder(); 
  50. //將字符串寫入到stringWriter對(duì)象中 
  51. StringWriter sw = new StringWriter(sb); 
  52. //xml序列化對(duì)象 typeof(類名) 
  53. XmlSerializer ser = new XmlSerializer(typeof(urlset)); 
  54. //把Stream對(duì)象和urlset一起傳入,序列化出一個(gè)字符串sb 
  55. ser.Serialize(sw, urlsetList, xmlns); 
  56. sw.Close(); 
  57. string FILE_NAME = HttpContext.Current.Server.MapPath("API/54tuan.xml"); 
  58. FileInfo fi = new FileInfo(FILE_NAME); 
  59. //如果文件己經(jīng)存在則刪除該文件  
  60. if (fi.Exists) 
  61. if (fi.Attributes.ToString().IndexOf("ReadOnly") >= 0) { 
  62. fi.Attributes = FileAttributes.Normal; 
  63. File.Delete(fi.Name); 
  64. //創(chuàng)建文件 并寫入字符串 
  65. using (StreamWriter sWrite = File.CreateText(FILE_NAME)) 
  66. sWrite.Write(sb.ToString().Replace("encoding=/"utf-16/"""encoding=/"utf-8/"").Replace("<urlList>""").Replace("</urlList>""").Replace("<dataList>""").Replace("</dataList>""").Replace("<displayList>""").Replace("<displayList>""").Replace("</displayList>""")); 
  67. sWrite.Close(); 
  68. //輸出序列化后xml文件 
  69. Response.ClearContent(); 
  70. Response.ClearHeaders(); 
  71. Response.ContentType = "application/xml"
  72. Response.WriteFile(HttpContext.Current.Server.MapPath("API/54tuan.xml")); 
  73. Response.Flush(); 
  74. Response.Close(); 
  75. catch (Exception ex) 
  76. Response.Write(ex.Message); 
  77. finally 
  78. #endregion 

希望本文所述對(duì)大家asp.net程序設(shè)計(jì)有所幫助。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到ASP.NET教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 色妇视频 | 羞羞电影网| 国产精品一区二区x88av | 666sao| 91嫩草丨国产丨精品入口 | 国产一级性生活视频 | 中国av一级片 | 欧美日本不卡 | 黄色免费不卡视频 | 亚洲免费看片网站 | 国产一级毛片视频在线! | asian超清日本肉体pics | 国产69精品久久久久99尤 | 久久精品观看 | 日韩视频高清 | 亚洲精品午夜在线 | 十级毛片 | 毛片在线免费播放 | 香蕉久久久| 亚洲码无人客一区二区三区 | 欧美羞羞视频 | 亚洲国产精品久久久久久久 | 亚州综合图片 | 另类亚洲孕妇分娩网址 | 男女羞羞视频在线免费观看 | 西川av在线一区二区三区 | 高清在线国产 | 黄色久| 中文国产在线视频 | 免费观看又色又爽又黄的崩锅 | 成人综合区一区 | 久久免费视频精品 | 高清av在线 | 亚洲少妇诱惑 | 免费播放av | 一级毛片在线观看视频 | 国产乱轮视频 | 日本不卡一区二区三区在线观看 | 97se亚洲综合在线韩国专区福利 | 欧美高清一级片 | 特色一级黄色片 |