1。我认为是最原始,最基本的一种:利用XmlDocument向一个XML文件里写节点,然后再利用XmlDocument保存文件。     
首先加载要写入的XML文件,但是如果没有的,就要新建,在新建的过程中,要有写入的代码;   
            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,只能嵌套,也就是只能有一个根节点。
2。应用到数据库,将数据库的DataSet对象里的值来生成XML文件的元素;
   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文件,就是这么一句话。如果不保存到文件,直接ds.GetXML()       
            }
3。利用XmlSerializer来将类的属性值转换为XML文件的元素值。用一个字符串作为一个XML文档中的xmlAttribute或xmlElement。[其元素或属性由类的定义来设置(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实例
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); 
}
个人总结,这里只叙述了三种方法,灵活应用后会很好,直接输入,或通过数据库或类都可以。可以用来在C#中对XML的生成。