C#生成XML的三种途径

为了全面,这里都将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#生成XML的三种途径的更多相关文章

  1. java解析xml的三种方法

    java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax; import org.xml.sax.Attributes; import org.xml.sax.SAXE ...

  2. Android平台中实现对XML的三种解析方式

    本文介绍在Android平台中实现对XML的三种解析方式. XML在各种开发中都广泛应用,Android也不例外.作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能. 在 ...

  3. python 全栈开发,Day94(Promise,箭头函数,Django REST framework,生成json数据三种方式,serializers,Postman使用,外部python脚本调用django)

    昨日内容回顾 1. 内容回顾 1. VueX VueX分三部分 1. state 2. mutations 3. actions 存放数据 修改数据的唯一方式 异步操作 修改state中数据的步骤: ...

  4. c#封装DBHelper类 c# 图片加水印 (摘)C#生成随机数的三种方法 使用LINQ、Lambda 表达式 、委托快速比较两个集合,找出需要新增、修改、删除的对象 c# 制作正方形图片 JavaScript 事件循环及异步原理(完全指北)

    c#封装DBHelper类   public enum EffentNextType { /// <summary> /// 对其他语句无任何影响 /// </summary> ...

  5. Java 处理 XML 的三种主流技术及介绍

    Java 处理 XML 的三种主流技术及介绍 原文地址:https://www.ibm.com/developerworks/cn/xml/dm-1208gub/ XML (eXtensible Ma ...

  6. spring生成EntityManagerFactory的三种方式

    spring生成EntityManagerFactory的三种方式 1.LocalEntityManagerFactoryBean只是简单环境中使用.它使用JPA PersistenceProvide ...

  7. php 生成word的三种方式

    原文地址 http://www.jb51.net/article/97253.htm 最近工作遇到关于生成word的问题 现在总结一下生成word的三种方法. btw:好像只要是标题带PHP的貌似点击 ...

  8. iOS用三种途径实现一方法有多个返回值

    以前觉得这种标题有点偏向于理论,实际开发中怎么会有这种诡异的需求,但是真正遇到了这种硬需求时觉得还是有那么点价值的,理论付诸了实践在此也就做了个整理. 以我私下开发中的一处代码为例,本意是希望有这么一 ...

  9. javascript生成对象的三种方法

    /** js生成对象的三种方法*/ // 1.通过new Object,然后添加属性 示例如下: var people1 = new Object(); people1.name = 'xiaohai ...

随机推荐

  1. 第 11 章 桥梁模式【Bridge Pattern】

    以下内容出自:<<24种设计模式介绍与6大设计原则>> 今天我要说说我自己,梦想中的我自己,我身价过亿,有两个大公司,一个是房地产公司,一个是服装制造业,这两个公司都很赚钱,天 ...

  2. android中viewPager+fragment实现的屏幕左右切换(进阶篇)

    Fragment支持在不同的Activity中使用并且可以处理自己的输入事件以及生命周期方法等.可以看做是一个子Activity. 先看一下布局: 1 <LinearLayout xmlns:a ...

  3. 关于后缀数组的倍增算法和height数组

    自己看着大牛的论文学了一下后缀数组,看了好久好久,想了好久好久才懂了一点点皮毛TAT 然后就去刷传说中的后缀数组神题,poj3693是进化版的,需要那个相同情况下字典序最小,搞这个搞了超久的说. 先简 ...

  4. SpringSecurity的简单应用(一)

    java项目首先要提的就是jar包了,Springsecurity的jar下载地址:http://static.springsource.org/spring-security/site/downlo ...

  5. Delphi组件indy 10中IdTCPServer修正及SSL使用心得

    indy 10终于随着Delphi2005发布了,不过indy套件在我的印象中总是复杂并且BUG不断,说实话,不是看在他一整套组件的面子上,我还是喜欢VCL原生的Socket组件,简洁,清晰.Indy ...

  6. JavaScript 判断对象是否为空

    /** **判断是否null *@param data */ function isNull(data) {     return (data == "" || data == u ...

  7. WP e-Commerce WordPress Payment Gateways Caller插件本地文件包含漏洞

    漏洞名称: WP e-Commerce WordPress Payment Gateways Caller插件本地文件包含漏洞 CNNVD编号: CNNVD-201310-642 发布时间: 2013 ...

  8. NOI2003 文本编辑器editor

    1507: [NOI2003]Editor Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 1908  Solved: 738[Submit][Statu ...

  9. 【Node】package.json

    npm的package.json中文文档https://github.com/ericdum/mujiang.info/issues/6

  10. (转载)CSS分别设置Input样式(按input类型)

    (转载)http://www.uml.org.cn/html/201207202.asp   当你看到<input>这个html标签的时候,你会想到什么?一个文本框?一个按钮?一个单选框? ...