C#生成XML的三種途徑

爲了全面,這裏都將XML保存到文件中,有三種生成XML的方式:
1。最原始,最基本的一種:利用XmlDocument向一個XML文件裏寫節點,而後再利用XmlDocument保存文件。
首先加載要寫入的XML文件,可是若是沒有的,就要新建,在新建的過程當中,要有寫入的代碼; node

XmlDocument doc = new XmlDocument();
try
{
    doc.Load("new.xml");
}
catch
{
    XmlTextWriter xtw = new XmlTextWriter("new.xml", Encoding.UTF8); 新建XML文件
    xtw.WriteStartDocument();
    xtw.WriteStartElement("gnode"); gnode根節點
    xtw.WriteStartElement("myxm1"); gnode根節點下的元素myxmls
    xtw.WriteEndElement();
    xtw.WriteEndElement();
    xtw.WriteEndDocument();
    xtw.Close();
    doc.Load("new.xml");
}

XmlNode xn = doc.DocumentElement; 找到根節點
    XmlElement xe = doc.CreateElement("myxml2"); 在根節點下建立元素,若是是屬性,則用XmlAttribute
        xe.InnerText = "hahaha"; 給子節點寫入文本節點(值)
        xn.AppendChild(xe); 根節點將其歸入
doc.Save("new2.xml"); 利用XmlDocument保存文件
數據庫

注意點:在新建根節點的時候,WriteStartElement,只能嵌套,也就是隻能有一個根節點。ui

2。應用到數據庫,將數據庫的DataSet對象裏的值來生成XML文件的元素;this

using (SqlConnection con = new SqlConnection("Server=.;DataBase=HGSTUDY;uid=sa;pwd=yao"))
{
    con.Open();
    SqlCommand command = new SqlCommand("select * from GL_STUDY", con);
    command.CommandType = CommandType.Text;
    DataSet ds = new DataSet("DATASET"); DATASET將成爲XML文件中的根節點名稱,不然系統將其命名爲   NewDataSet
    SqlDataAdapter sda = new SqlDataAdapter();
     sda.SelectCommand = command;
    sda.Fill(ds, "DATATABLE"); DATATABLE爲所生成XML文件中的子節點名稱,不然系統將其命名爲Table。
    ds.WriteXml("dbxml.xml"); DataSet的方法WriteXml將數據寫入到XML文件,就是這麼一句話。
}
spa

3。利用XmlSerializer來將類的屬性值轉換爲XML文件的元素值。用一個字符串做爲一個XML文檔中的xmlAttribute或xmlElement。[其元素或屬性由類的定義來設置(xml串行化)]xml

using System;System.xml.Serialization;對象

3.1.先初始化一個類,設置屬性值文檔

[XmlRoot("Truck")] ----設置做爲XML中的根元素名稱
public Truck()
{ }
[XmlAttribute("id")] --------設置做爲xml中的屬性
public int ID
{
    get{return this._id;}
    set { this._id = value; }
}
[XmlElement("chepai")]------設置做爲XML中的元素(默認狀態)
public string cheID
{
    get { return this._cheID; }
    set { this._cheID = value; }
}
private int _id = 0;
private string _cheID = "";
字符串

3.2.建立XmlSerializer實例get

class XXX

{

    XmlSerializer ser = new XmlSerializer(Type.GetType("forxml.truck"));

    Truck tr = new Truck();
     tr.ID = 1;
    tr.cheID = "贛A T34923";

3.3.Serialize方法--完成對類的串行化
    XmlTextWriter xtw = new XmlTextWriter("myxml.xml",Encoding.UTF8); 用XmlTextWriter 建立一個XML文件
    ser.Serialize(xtw, tr); 若是隻想顯示,能夠直接ser.Serialize(Console.Out, tr);

}

相關文章
相關標籤/搜索