C#生成XML的三种途径小结
1。我认为是最原始,最基本的一种:利用XmlDocument向一个XML文件里写节点,然后再利用XmlDocument保存文件。 复制代码 代码如下: 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文件 个人总结,这里只叙述了三种方法,灵活应用后会很好,直接输入,或通过数据库或类都可以。可以用来在C#中对XML的生成。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |