C# 保存數據到XML文件


網站的應用中,有些只需要存儲小部分數據,用數據庫的話就太麻煩了,因此將數據存儲於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"));

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM