XML逐漸成為現今數據交換的一種標準格式,所以我們也要了解ASP.NET 如何匯出與讀取XML檔。XML 檔的匯出與讀取主要是透過DataSet 對象的WriteXML 以及ReadXML 方法,不過要執行檔案的讀寫動作必需使用FileStream 對象來進行檔案的操作,這個檔案的名稱地址為System.IO。
檔案操作
要將XML 匯出成檔案要利用FileStream 對象開啟檔案。FileStream 的使用語法如下所示:
Dim 變數As FileStream
變數=New FileStream(文件名稱, FileMode, FileAclearcase/" target="_blank" >ccess)
其中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>