一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - asp.net類序列化生成xml文件實例詳解

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

2019-12-28 14:15happy664618843 ASP.NET教程

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

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

根據設計的需求需要開發多個商品的API 原XML文件如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<urlset>
 <url>
  <loc>http://www.xxxxx.com/todaydetials.aspx?id=143</loc>
  <data>
   <display>
    <website>愛購114</website>
    <siteurl>http://www.xxxxx.com/</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 各個節點的數據及父子節點的關系類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#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 定義獲取網站信息實體類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#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格式的文件讀取文件展現到界面:

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

希望本文所述對大家asp.net程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 性色视频免费 | 久久亚洲国产成人影院 | 免费观看美女被cao视频 | 婷婷在线成人免费观看搜索 | 免费人成黄页在线观看69 | 色8| 九色PORNY真实丨国产大胸 | 韩国美女豪爽一级毛片 | sxx免费看视频在线播放 | 青青草原国产视频 | 国产欧美日韩亚洲精品区2345 | 2012年中文字幕在线看 | 精品国产品香蕉在线观看75 | 欧美成人aletta ocean | 户外露出野战hd | 国产精品久久久久久爽爽爽 | 高清日韩在线 | 波多野结衣亚洲一区 | 午夜精品久久久久久久99 | 国产探花视频 | 动漫在线观看h | 久久内在线视频精品mp4 | 国语自产拍在线观看7m | 日韩欧美国产一区 | 青涩体验在线观看未删减 | 6个老师的尿奴 | 高清不卡一区二区 | 亚洲七七久久综合桃花 | s0e一923春菜花在线播放 | 成年性生交大片免费看 | 动漫美丽妇人1~2在线看 | 91免费精品国自产拍在线可以看 | 美女被躁了在线观看视频 | 女人c交zzzooo在线观看 | 麻豆视频网 | 亚洲日韩欧美一区二区在线 | 青青青青青国产免费手机看视频 | 特级夫妻大片免费在线播放 | 美女免费观看一区二区三区 | bl双性受乖调教改造身体 | 咪咪爱网友自拍 |