天天看點

C#對XML操作:建立XML(3)

C#操作XML初步(3)

第一章:建立XML檔案

下面是通過一個DATASET來生成XML的例子 <% @ Import Namespace="System.IO" %>

<% @ Import Namespace="System.Xml" %>

<% @ Import Namespace="System.Data" %>

<Script Language="C#" Runat="Server">

public void Page_Load(Object src,EventArgs e)

{

/*

* 版 權 : copyright by SEM IT DEPARTMENT

* 版 本 : version 0.0.1

* 文 件 : CreateXml_3.aspx

* 用 途 : 使用一個資料集合建立XML檔案。

* 作 者 : 歐陽雲天 @2005-4-7

* 郵 箱 : [email protected]

* 修 改 :

*/

string FromFile; //模闆檔案

string NewFile;

FromFile = Server.MapPath("./")+"Template.Xml";

NewFile = Server.MapPath("./")+"New.Xml";;

DataSet myDs = new DataSet();

FileStream fin ;

fin = new FileStream(FromFile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

myDs.ReadXml(fin);

fin.Close();

//這裡我們使用的是從XML當中擷取的DATASET,當然我們也可以從資料庫、數組等獲得DATASET然後生成XML

myDs.WriteXml(NewFile, XmlWriteMode.WriteSchema);

myDs.Dispose();

//用 XML DOM方式讀取XML,并将它與XML控件綁定

XmlDocument doc = new XmlDocument();

doc.Load(NewFile);

xml1.Document = doc;

}

catch(Exception ex)

{

Response.Write(ex.Message);

}

finally

{

}

}

</script>

<html>

<head>

<title>測試XML文本的建立</title>

</head>

<body>

<form runat="server">

<b>建立文本檔案成功,寫入成功,檔案的内容為:</b>

<p><asp:Xml id="xml1" runat="server"/></p>

</form>

</body>

</html>

則,上面例子當中的Template.Xml的内容如下:

<?xml version="1.0" encoding="gb2312"?>

<users>

<user id="1">

<userName>outrace</userName>

<userPass>mypass</userPass>

</user>

<user id="2">

<userName>trace</userName>

<userPass>mypass2</userPass>

</user>

</users>

新生成的New.Xml的内容如下:

<?xml version="1.0" standalone="yes"?>

<users>

<xs:schema id="users" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">

<xs:element name="users" msdata:IsDataSet="true" msdata:Locale="zh-CN">

<xs:complexType>

<xs:choice maxOccurs="unbounded">

<xs:element name="user">

<xs:complexType>

<xs:sequence>

<xs:element name="userName" type="xs:string" minOccurs="0" msdata:Ordinal="0" />

<xs:element name="userPass" type="xs:string" minOccurs="0" msdata:Ordinal="1" />

</xs:sequence>

<xs:attribute name="id" type="xs:string" />

</xs:complexType>

</xs:element>

</xs:choice>

</xs:complexType>

</xs:element>

</xs:schema>

<user id="1">

<userName>outrace</userName>

<userPass>mypass</userPass>

</user>

<user id="2">

<userName>trace</userName>

<userPass>mypass2</userPass>

</user>

</users>