C#生成XML的三种途径 (分享)

摘要:
为了更全面,XML以三种方式保存到文件中:1.我认为这是最原始和最基本的方式:使用XmlDocument将节点写入XML文件,然后使用XmlDocument保存文件。应用于数据库,并从数据库的DataSet对象中的值生成XML文件的元素;使用{con.Open();SqlCommandcommand=newSqlCommand;command.CommandType=CommandType.Text;DataSets=newDataSet;DATASET将成为XML文件中根节点的名称,否则系统将其命名为NewDataSetSqlDataAdaptersda=newSqlDataAdapter() ; 星期三。SelectCommand=命令;星期三。填满DATATABLE是生成的XML文件中的子节点的名称。否则,系统会将其命名为Table。XmlSerializer用于将类的属性值转换为XML文件的元素值。在XML文档中使用字符串作为xmlAttribute或xmlElement。可以在C#中使用

为了全面,这里都将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文件,就是这么一句话。
            }

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#生成XML的三种途径 (分享)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇三项实测:7Zip与WinRAR哪个好element el-cascader设置默认值下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

API常用后台解析XML,JOSN数据的两种方式(XML)

private XmlDocument Getlogistics(string UserID, stringLogisticsID) { string url = string.Format("https://secure.shippingapis.com/ShippingAPI.dll?API=Track...

自动AC机

有更新 注意不是AC自动机! AC自动机是种高级算法,我所介绍的是种作弊方法。 这是一种非常玄学的东西,是用Pascal语言写的用来卡评测机的东西,卡软件BUG,以此来作弊使自己“AC”。 不过只能卡Cena,其他的力有未逮。 现在基本没用了(时代更新太快,bug都修复了) 但也因为它是老古董,所以才又翻出来,收藏一下也是好的,毕竟是当年OIer们的智慧成...

XML与java的应用

对于XML进行解析,我们需要调用第三方提供的接口,对XML文档进行解析; 对于XML处理方面,W3C有两种解决方法: (1)DOM(Document Object Model): (2)SAX(Simple API for XML) DOM介绍: 特点:先将xml文档解析成dom树,并放入内存,能够随机访问任意节点。 缺点:因为需要放入内存操作,所以对文...

JQuery实现省市区三级联动

[中国地区列表.xml下载] jquery版本:1.2.6,传说jquery1.3异步加载会出现卡的情况。 js内容: Codevar j = jQuery.noConflict();var prov="";var city="";var area="";j(function(){    j.get("/Js/Message/address.xml",f...

[学习日记]VB.net读取XML文件

一段用来读取XML文件信息的VB代码使用了递归方式VB.net代码如下: PublicClassForm1ClassForm1InheritsSystem.Windows.Forms.Form#Region"Windows窗体设计器生成的代码"PublicSubNew()SubNew()MyBase.New()'该调用是Windows窗体设计器所必需的。...

Android Studio中一套代码多版本打包

一套代码达到以下效果: 打包不同applicationId能同时安装在同一手机上 不同logo,app名称, 不同第三方SDK接入配置(例如微信分享appid,激光推送appkey) 能区分debug和release配置 甚至不同的so文件,不同的依赖jar包 (待补充) 使用到的功能:productFlavor和buildTypes 原理:优先级bu...