C#生成XML的三种途径

原创 2011年01月14日 15:24:00

为了全面,这里都将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的生成。

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yixin19861111/archive/2009/07/28/4387762.aspx

XML解析的三种方式总结

XML解析有三种方式,这里来总结一下 *************************SAX************************* 首先是SAX方式,这种方式是边加载边解析 关...
  • kangaroo835127729
  • kangaroo835127729
  • 2014年12月18日 00:18
  • 649

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

http://www.jb51.net/article/37106.htm 为了全面,这里都将XML保存到文件中,有三种生成XML的方式。 1。我认为是最原始,最基本的...
  • ysmz4
  • ysmz4
  • 2015年05月12日 11:16
  • 307

C#XML生成与解析

using UnityEngine; using System.Collections; using System.Collections.Generic; using System.Xml; usi...
  • yuxikuo_1
  • yuxikuo_1
  • 2016年02月18日 00:15
  • 438

c#生成XML文件

 c#生成XML文件 using System; using System.Data; using System.Configuration; using System.Web; us...
  • yc999
  • yc999
  • 2016年07月17日 00:21
  • 239

C# 创建XML文档

有些时候我们需要生成一个xml文档作为数据交换的容器。当然我们用拼接字符串的方法来进行构建xml,但是这种方法虽然简单有效,但是如果xml文档结构过于复杂,拼接字符串会让人眼花缭乱。这时候就需要C#给...
  • guwei4037
  • guwei4037
  • 2013年12月11日 19:41
  • 6799

C#代码生成XML文档以及规范XSD

C#代码生成XML文档以及规范XSD   一:C#生成XML,其元素或属性由类的定义来设置(xml串行化) 将一个字符串转到一个XML文档中的xmlAttribute或xmlElemen...
  • niewq
  • niewq
  • 2014年03月04日 23:59
  • 3119

C#中生成XML的三种方法

1。我认为是最原始,最基本的一种:利用XmlDocument向一个XML文件里写节点,然后再利用XmlDocument保存文件。 首先加载要写入的XML文件,但是如果没有的,就要新建,在新建的过程...
  • zccai1205
  • zccai1205
  • 2016年07月02日 08:30
  • 137

C#生成、解析xml文件以及处理报错原因

简单的介绍一下生成XML文件以及解析,因为有些数据不一定放到数据库,减少链接数据库        用xml还是比较好些。如果遇到问题也就是解析时报错,对于解析,可以选择用ie浏览器进行验证    ...
  • lilinoscar
  • lilinoscar
  • 2014年03月11日 18:02
  • 5282

xml的三种解析方式

本篇博客重点介绍Android中三种解析XML的方式,包括PULL、SAX、DOM,当然不止这些,还可以用第三方的jar包提供的解析,只是这三种在Android中比较常用吧。再顺便介绍一下Androi...
  • tiankongzaiweixiao
  • tiankongzaiweixiao
  • 2013年12月27日 17:00
  • 2584

在C#中创建和读取XML文件

1.创建简单的XML文件 为了便于测试,我们首先创建控制台应用程序,项目命名为CreateXml,Program.cs代码如下: 这样会在C盘根目录下创建data2.xml文件,文件内容为 ...
  • yangbingzhou
  • yangbingzhou
  • 2016年01月21日 16:55
  • 14312
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#生成XML的三种途径
举报原因:
原因补充:

(最多只允许输入30个字)