網站的應用中,有些只需要存儲小部分數據,用數據庫的話就太麻煩了,因此將數據存儲於xml文件中顯得很方便。
1.寫入xml(用戶填寫留言)
public void WriteXml() { //創建一個數據集,將其寫入xml文件 string optime = DateTime.Now.ToString("yyyyMMddHHmmss") + ".xml"; System.Data.DataSet ds = new System.Data.DataSet("MESSAGE"); System.Data.DataTable table = new System.Data.DataTable("FeedBack"); ds.Tables.Add(table); table.Columns.Add("ID", typeof(string)); table.Columns.Add("email", typeof(string)); table.Columns.Add("telephone", typeof(string)); table.Columns.Add("problem", typeof(string)); System.Data.DataRow row = table.NewRow(); row[0] = DateTime.Now.ToString("yyyyMMddHHmmss"); row[1] = this.txtEmail.Text; row[2] = this.txtMobile.Text; row[3] = this.txtBody.Text; ds.Tables["FeedBack"].Rows.Add(row); string path = Server.MapPath("~/feedback/" + optime); ds.WriteXml(path); }
寫入后xml結果:
<MESSAGE> <FeedBack> <ID>20130612105102</ID> <email>21703@qq.com</email> <telephone>435435</telephone> <problem>EWWREEWREW</problem> </FeedBack> </MESSAGE>
2.另一種寫入方法
public void WriteXml() { string path = Server.MapPath("~/feedback/" + "test1.xml");//創建或者覆蓋文件 XmlTextWriter xml = new XmlTextWriter(path, Encoding.UTF8); xml.Formatting = Formatting.Indented; xml.WriteStartDocument(); xml.WriteStartElement("MESSAGE"); xml.WriteStartElement("feedback"); xml.WriteStartElement("郵箱"); xml.WriteCData("qwert@163.com"); xml.WriteEndElement(); xml.WriteStartElement("電話"); xml.WriteCData("134000000"); xml.WriteEndElement(); xml.WriteEndElement(); xml.WriteEndElement(); xml.WriteEndDocument(); xml.Flush(); xml.Close(); }
結果如下:
<?xml version="1.0" encoding="utf-8"?> <MESSAGE> <feedback> <郵箱><![CDATA[qwert@163.com]]></郵箱> <電話><![CDATA[134000000]]></電話> </feedback> </MESSAGE>
兩種寫入方法的結果不一樣,區別在於CDATA,主要是因為文本內容有可能包含“非法”字符,加入CDATA標記后,在CDATA標記中的信息被解析器原封不動地傳給應用程序,並且不解析該段信息中的任何控制標記。
3.xml讀取
//將xml文件的數據放到數據集里,再將數據集綁定到所需的控件即可
System.Data.DataSet ds = new System.Data.DataSet(); ds.ReadXml(Server.MapPath("~/feedback/" + "answer.xml"));