欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-20 23:44:58
1。我认为是最原始,最基本的一种:利用xmldocument向一个xml文件里写节点,然后再利用xmldocument保存文件。   &nbs...

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

上一篇:

下一篇: