C#生成XML的三种途径小结

 更新时间:2013年05月20日 23:45:47   作者:  
为了全面,这里都将XML保存到文件中,有三种生成XML的方式,需要的朋友可以参考下

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的生成。

相关文章

  • C#检测两个矩阵是否相等的方法

    C#检测两个矩阵是否相等的方法

    这篇文章主要介绍了C#检测两个矩阵是否相等的方法,涉及C#进行数组操作的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • C#使用PPT组件的CreateVideo方法实现视频生成

    C#使用PPT组件的CreateVideo方法实现视频生成

    这篇文章主要为大家详细介绍了C#如何使用PPT组件的CreateVideo方法实现视频生成,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下
    2023-10-10
  • Unity的IPreprocessBuildWithReport实用案例深入解析

    Unity的IPreprocessBuildWithReport实用案例深入解析

    这篇文章主要为大家介绍了Unity的IPreprocessBuildWithReport实用案例深入解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • c#的datatable转list示例

    c#的datatable转list示例

    这篇文章主要介绍了c#的datatable转list示例,代码中有注释,需要的朋友可以参考下
    2014-04-04
  • 微信公众平台开发教程(三) 基础框架搭建

    微信公众平台开发教程(三) 基础框架搭建

    这篇文章主要介绍了微信公众平台开发教程(三) 基础框架搭建,具有一定的参考价值,有需要的可以了解一下。
    2016-12-12
  • C#加密在实际中的应用

    C#加密在实际中的应用

    在系统的管理员有着实际的应用,对于一个数据库管理系统来说,数据库安全还是挺重要的,所以在存入到数据库的密码通常都是加密的
    2012-11-11
  • C#实现冒泡排序和插入排序算法

    C#实现冒泡排序和插入排序算法

    这篇文章介绍了C#实现冒泡排序和插入排序算法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • C# web应用程序不能访问app_code下类的原因以及解决方法

    C# web应用程序不能访问app_code下类的原因以及解决方法

    本文主要介绍了C#web应用程序不能访问app_code下类的原因以及解决方法。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • C# winform实现登陆次数限制

    C# winform实现登陆次数限制

    这篇文章主要介绍了C# winform实现登陆次数限制,相信大家都遇到过网站在用户多次输错密码之后会自动把账户冻结的情况,这种功能如何实现,下面小编为大家分享实现方法
    2016-05-05
  • c# 实现发送邮件到指定邮箱

    c# 实现发送邮件到指定邮箱

    这篇文章主要介绍了c# 如何实现发送邮件到指定邮箱,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03

最新评论