当前位置:  编程技术>.net/c#/asp.net

C# 生成XML文档的三种方法与代码实例

    来源: 互联网  发布时间:2014-08-30

    本文导语:  之前介绍过C#写入Xml文档的三种方法,今天为大家介绍C#生成Xml文件的三种方法。有什么不同呢?有兴趣的朋友,可以对比阅读下。 1,基础方法,用XmlDocument向一个XML文件里写节点,然后再利用XmlDocument保存文件。 首先,加载...

之前介绍过C#写入Xml文档的三种方法,今天为大家介绍C#生成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);
}

至于哪种方法更好呢,还是建议你测试下这三种方法的代码,自己体会一下,或许用数据库更好,也许直接用XmlDocument更适合你。


    
 
 

您可能感兴趣的文章:

  • c#如何生成Excel(.xls和.xlsx)文件
  • C# Guid.NewGuid生成随机数的例子
  • C#生成随机字符串的实例
  • C#随机生成Unicode类型字符串
  • c#生成随机数示例分享
  • C#实现在两个数字之间生成随机数的方法
  • c# 生成随机时间的小例子
  • 生成不重复随机数列表的c#代码
  • C#生成注册码的小例子
  • C#生成MD5的函数代码
  • C#实现动态生成表格的方法
  • C#生成不重复随机数列表实例
  • C#生成设置范围内的Double类型随机数的方法
  • C#生成单页静态页简单实例
  • C#生成加密的16位随机数的代码
  • 一段C#生成随机验证码的代码
  • 基于C#生成随机数示例
  • c#生成缩略图的实现方法
  • c#生成缩略图不失真的简单示例
  • asp.net(c#) 使用Rex正则来生成字符串数组的代码
  • C#随机生成不重复字符串的两个不错方法
  • 如何用程序生成一个本地机器上一个类的实例?
  • php生成excel列序号代码实例
  • php生成透明背景图片实例
  • 高分火速求解,请在线朋友回答:java自定义类怎样生成实例数组?( className[] N=new className[X];怎么不行?)
  • ******"Servlet根据JSP视图的需求生成JavaBeans的实例并输出给JSP环境"如何实现上面这句话的效果??*******
  • 深入理解Java对象实例生成的例子
  • PHP接收二进制流并生成文件(实例)
  • php生成目录树实例代码
  • 请问怎么才能使一个类只生成一个实例?
  • PHP生成柱状图实例代码
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux c 生成随机数srand函数和rand函数介绍及代码示例
  • QT Designer生成的代码不能生成可执行程序
  • php生成短网址 仿微博短网址生成代码
  • Java代码自动生成工具 JunJava
  • C/C++ 代码文档生成器 cldoc
  • bean 代码生成工具 BeanGenerator
  • 在JB自己生成的EJB客户端的测试代码中都会自动生成,象String url = "t3://localhost:7001";这样的,请问:
  • CPython代码生成器 Shiboken
  • glade无法生成C++代码
  • 最快速的java代码生成器 rapid-generator
  • 代码自动生成工具 Acceleo
  • iBATIS的代码生成工具 Ibator
  • Java 代码生成工具 JAnnocessor
  • PHP代码生成器 PHPGEN
  • Java 的解析器代码生成器 AustenX
  • 生成Python代码的UML插件 PyUML
  • Eclipse代码生成插件 slave4j
  • php生成唯一标识符的代码
  • C代码文档生成工具 Cxref
  • 用rose试图生成java代码,提示如下错误,求教高手!
  • 欢迎使用、加入Arrow项目开发--一个自动化代码生成工具
  • linux c下利用srand和rand函数生成随机字符串
  • 用JBuilder能将java程序生成exe可执行文件吗?如何生成?
  • 技术文章 iis7站长之家
  • 我想问一下,java生成的.class文件能不能通过某种工具生成.exe文件?
  • linux下利用(cat,strings,head,sed)命令生成随机字符串
  • 高分求jsp中动态生成图片的相关资料、生成svg格式和pdf格式的资料,不够再加分
  • php中session_id()函数详细介绍,会话id生成过程及session id长度
  • 如何使用arm-uclibc-gcc将.c文件编译生成.a,将.c文件编译生成.cgi?
  • ORACLE中DBMS_RANDOM随机数生成包
  • 如何指定用javac编译生成类的存放路径。(最好不要告诉我再生成之后再把文件流重新到出这种)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3