XML逐渐成为现今数据交换的一种标准格式,所以我们也要了解ASP.NET 如何汇出与读取XML檔。XML 档的汇出与读取主要是透过DataSet 对象的WriteXML 以及ReadXML 方法,不过要执行档案的读写动作必需使用FileStream 对象来进行档案的操作,这个档案的名称地址为System.IO。
档案操作
要将XML 汇出成档案要利用FileStream 对象开启档案。FileStream 的使用语法如下所示:
Dim 变数As FileStream
变数=New FileStream(文件名称, FileMode, FileAccess)
其中FileMode 的参数如下表所示:
其中FileAccess 的参数如下表所示:
XML 档案的汇出
下列范例在使用者按下「汇出XML」后,将第八章的会员数据表汇出成XML 格式:
<%@Import Namespace="System.IO"%>
<%@Import Namespace="System.Data"%>
<%@Import Namespace="System.Data.ADO"%>
<Form Id="Form1" Runat="Server">
<ASP:Button Id="btnOutPort" Text="汇出XML"
OnClick="btnOutPort_Click"
Runat="Server"/>
<ASP:Label Id="Label1" Runat="Server"/>
</Form>
<Script Language="VB" Runat="Server">
Sub btnOutPort_Click(Sender As Object,e As Eventargs)
Label1.Text="汇出中..."
Dim dscA As ADODataSetCommand=New ADODataSetCommand("Select * From
Members", _
"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\InetPub\wwwroot\CR\Ch08\MyWeb.Mdb")
Dim dsDataSet As DataSet=New DataSet
dscA.FillDataSet(dsDataSet,"Members")
Dim fsA As FileStream=New FileStream(Server.MapPath("Members.xml"), _
FileMode.OpenOrCreate,
FileAccess.Write)
dsDataSet.WriteXML(fsA)
fsA.Close()
Label1.Text="汇出完毕"
End Sub
</Script>
</Html>
上述范例首先我们先将Members 数据表填入DataSet 对象中,然后再宣告一个FileStream 对象并指明要在网页所在路径开启Members.xml 档,如果有这个档案则开启否则就产生,而且这个档案是唯写。档案已经开启完成后,我们就可以利用DataSet 的WriteXML 方法将XML 格式的数据写入档案中,最后将FileStream 对象利用Close 方法关闭即可。所汇出的XML 档如下图所示:
XML 档案的读取
下列范例在使用者按下「汇入XML」后,将刚刚所汇出的XML档案利用DataSet 对象的ReadXML
方法汇入:
<%@Import Namespace="System.IO"%>
<%@Import Namespace="System.Data"%>
<Form Id="Form1" Runat="Server">
<ASP:Button Id="btnOutPort" Text="汇入XML"
OnClick="btnOutPort_Click"
Runat="Server"/>
<ASP:Label Id="Label1" Runat="Server"/>
<ASP:DataGrid Id="dgA" Runat="Server"/>
</Form>
<Script Language="VB" Runat="Server">
Dim dsDataSet As DataSet=New DataSet
Sub btnOutPort_Click(Sender As Object,e As Eventargs)
Label1.Text="汇入中..."
Dim fsA As FileStream=New FileStream(Server.MapPath("Members.xml"), _
FileMode.Open,
FileAccess.Read)
dsDataSet.ReadXML(fsA)
fsA.Close()
dgA.DataSource=dsDataSet.Tables("Members").DefaultView
dgA.DataBind()
Label1.Text="汇入完毕"
End Sub
</Script>
</Html>