ASP.NET生成XML的一些方法

来源:互联网 发布:ec2016软件下载 编辑:程序博客网 时间:2024/04/30 01:25

ASP.NET生成XML是一种比较常见的功能,XML可以传递更多的数据与信息。这里的ASP.NET生成XML将从业务逻辑层、数据访问层、表示层入手,以代码的形式进行展现。

1.业务逻辑层:

  1. public DataSet ABCData()
  2. {
  3. DataBase db = new DataBase();
  4. string sql = "select * from products where products_Year='2008'";
  5. DataSet ds = db.GetDataSet(sql);
  6. return ds;
  7. }

注sql执行结果:

produts_Id products_Name products_Quantity products_Year
38          AAA            7649               2008
39          BBB            4567               2008
40          CCC            6410               2008

2.数据访问层略:

3.表示层:

  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3. DataBind databind=new DataBind ();
  4. DataSet ds=databind.ABCData();
  5. string plot_type = "CategorizedVertical";
  6. XmlDocument doc = new XmlDocument();
  7. XmlElement Node = doc.CreateElement("anychart");//创建一个anychart节点
  8. doc.AppendChild(Node);
  9. XmlElement Node1 = doc.CreateElement("charts");//创建节点anychart子节点charts
  10. doc.DocumentElement.AppendChild(Node1);
  11. XmlElement Node2 = doc.CreateElement("chart");//创建节点charts子节点chart
  12. Node2.SetAttribute("plot_type", plot_type);//为节点chart添加plot_type属性
  13. Node1.AppendChild(Node2);
  14. XmlElement Node3 = doc.CreateElement("data");//创建节点chart第一个子节点data
  15. Node2.AppendChild(Node3);
  16. XmlElement Node4 = doc.CreateElement("chart_settings");//创建节点chart第二个子节点chart_settings
  17. Node2.AppendChild(Node4);
  18. XmlElement Node5 = doc.CreateElement("series");//创建节点data子节点series
  19. Node5.SetAttribute("name", "Year 2003");//为series节点添加第一个属性name
  20. Node5.SetAttribute("type", "Bar");//为series节点添加第二个属性type
  21. Node3.AppendChild(Node5);
  22. for (int i = 1; i <= 3;i++ )
  23. {
  24. XmlElement Node13 = doc.CreateElement("point");//在节点series中创建子节点point
  25. Node13.SetAttribute("name", ds.Tables[0].Rows[i - 1]["products_Name"].ToString());//为point节点添加属性name并将ds.Tables[0]中products_Name一列数据逐行取出,赋值给属性name
  26. Node13.SetAttribute("y", ds.Tables[0].Rows[i - 1]["products_Quantity"].ToString());//为point节点添加属性y并将ds.Tables[0]中products_Quantity一列数据逐行取出,赋值给属性y
  27. Node5.AppendChild(Node13);
  28. }
  29. XmlElement Node6 = doc.CreateElement("title");
  30. Node4.AppendChild(Node6);
  31. XmlElement Node7 = doc.CreateElement("axes");
  32. Node4.AppendChild(Node7);
  33. XmlElement Node8 = doc.CreateElement("y_axis");
  34. Node7.AppendChild(Node8);
  35. XmlElement Node9 = doc.CreateElement("x_axis");
  36. Node7.AppendChild(Node9);
  37. XmlElement Node10 = doc.CreateElement("title");
  38. Node10.InnerText = "Sales";//为节点title赋值Sales
  39. Node8.AppendChild(Node10);
  40. XmlElement Node11 = doc.CreateElement("title");
  41. Node11.InnerText = "Retail Channel";
  42. Node9.AppendChild(Node11);
  43. XmlElement Node12 = doc.CreateElement("text");
  44. Node12.InnerText = "销售";
  45. Node6.AppendChild(Node12);
  46. doc.Save(Server.MapPath("test.xml")); //保存xml
  47. }

4.生产的xml:

  1. <anychart>
  2. <charts>
  3. <chart plot_type="CategorizedVertical">
  4. <data>
  5. <series name="Year 2003" type="Bar">
  6. <point name="AAA" y="7649" />
  7. <point name="BBB" y="4567" />
  8. <point name="CCC" y="6410" />
  9. </series>
  10. </data>
  11. <chart_settings>
  12. <title>
  13. <text>销售<text>
  14. </title>
  15. <axes>
  16. <y_axis>
  17. <title>Sales</title>
  18. </y_axis>
  19. <x_axis>
  20. <title>Retail Channel</title>
  21. </x_axis>
  22. </axes>
  23. </chart_settings>
  24. </chart>
  25. </charts>
  26. </anychart>
原创粉丝点击