程序段中對語句作了說明。主要使用XmlWriter類進行XML文件生成。
下面這是由關系數據庫生成相應XML文件過程。由於XML只是中間件,所以忽略了Schema或者DTD。
1 private void Page_Load(object sender, System.EventArgs e)
2 {
3 // 在此處放置用戶代碼以初始化頁面
4 //基本信息定義
5 String strTableName="systypes";
6 String strConnection="server=suntears;user id=sa;password=041210;database=webapplication1_db";
7 String strSql="select * from "+strTableName;
8 SqlConnection objConn=new SqlConnection(strConnection);
9 SqlDataAdapter objAdapter=new SqlDataAdapter(strSql,objConn);
10 DataSet objDSet=new DataSet();
11 objAdapter.Fill(objDSet,"temp");
12 XmlTextWriter objXmlWriter;
13 String strtemp1=Request.PhysicalApplicationPath;
14 String strpath=strtemp1+"qiming.xml";
15 //初始化XmlWriter.用此類寫XML文件
16 objXmlWriter=new XmlTextWriter(strpath,null);
17 //創建開頭的XML聲明
18 objXmlWriter.WriteStartDocument();
19 //創建根元素xml1
20 objXmlWriter.WriteStartElement("xml1");
21 //表名為元素名,字段名為屬性,表中的記錄為屬性的值
22 for(int i=0;i<objDSet.Tables["temp"].Rows.Count;i++)
23 {
24 objXmlWriter.WriteStartElement("menu");
25 for(int j=0;j<objDSet.Tables["temp"].Columns.Count;j++)
26 {
27 //寫入屬性
28 objXmlWriter.WriteAttributeString(objDSet.Tables["temp"].Columns[j].ColumnName,objDSet.Tables["temp"].Rows[i][j].ToString());
29 }
30 objXmlWriter.WriteEndElement();
31 }
32 objXmlWriter.WriteEndElement();
33 objXmlWriter.WriteEndDocument();
34 //用close方法關閉文件,否則文件將被鎖定
35 objXmlWriter.Close();
36 // 在頁面上顯示結果
37 string strXmlResult;
38 StreamReader objSR = File.OpenText(strpath);
39 strXmlResult = objSR.ReadToEnd();
40 objSR.Close();
41 Response.Write("<pre>" + Server.HtmlEncode(strXmlResult) + "<pre>");
42 }