您的位置:首页 > 编程语言 > C#

C#中生成XML的三种方法

2016-07-02 08:30 399 查看
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的生成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: