当前位置: 移动技术网 > IT编程>开发语言>c# > C#生成XML的三种途径小结

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

2019年07月18日  | 移动技术网IT编程  | 我要评论
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的生成。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网