试一试:绑定到简单的XML文档
(1) 打开Web页面编辑器,在C:\BegASPNET11\Ch02文件夹中创建一个文档artists.XML,输入以下的XML文档。或者从www.wrox.com上下载该文档:
<?XML version="1.0" encoding=”utf-8” ?>
< artists>
< artist>
<name>Vincent Van Gogh</name>
<nationality>Dutch</nationality>
<movement>Post Impressionism </movement>
<birthdate>30th March 1853</birthdate>
</ artist >
< artist >
<name>Paul Klee </name>
<nationality>Swiss </nationality>
<movement>Abstract Expressionism </movement>
<birthdate>18th December 1879</birthdate>
</ artist >
< artist >
<name>Max Ernst </name>
<nationality>German </nationality>
<movement>Surrealism </movement>
<birthdate>2nd April 1891</birthdate>
</ artist >
</artists>
(2) 在打开的Web页面编辑器中创建第二个文件datacontrolXML.ASPx,并添加下面的代码:
<%@ Page language="VB" runat="server" %>
<%@ Import namespace="System.Data" %>
<%@ Import namespace="System.XML" %>
<script language="vb" runat="server">
Sub Page_Load()
Dim XMLFilename As String
XMLFilename= "C:\BegASPNET11\ch02\artists.XML"
Dim newDataSet As New DataSet
newDataSet.ReadXML(XMLFilename)
DataGrid1.DataSource = newDataSet
DataGrid1.DataBind()
End Sub
</script>
<HTML>
<head>
<title>Data Grid Control example</title>
</head>
<body>
<ASP:DataGrid id="DataGrid1" runat="server" />
</body>
</HTML>
(3) 在浏览器中查看datacontrolXML.ASPx,结果应如图2-8所示。

图 2-8
代码的说明
本例的XML文件很像一个数据库表。由于这个XML文件很简单,因此可以通过文件看到对应的结果。第一行代码告诉用户这是一个XML文件。标记对<artist>封装了所有的数据:
<?XML version="1.0" encoding=”utf-8” ?>
< artists>
…
< /artists>
其中有三位艺术家。每位艺术家的数据项都用一对标记来包含,其结构如下:
< artist>
<name>Vincent Van Gogh</name>
<nationality>Dutch</nationality>
<movement>Post Impressionism </movement>
<birthdate>30th March 1853</birthdate>
</ artist >
每位艺术家都有4个元素(就像其他数据系统中的字段或列):姓名、国籍、流派以及出生日期。注意数据的每个值都放在一对标记之间,而且每位艺术家使用的标记名称都是相同的。即使不了解XML,也很容易看出文件的结构。
下面看看ASP.NET页面datacontrolXML.ASPx。在该页面的顶部,必须设置语言,导入命名空间,以存储处理XML数据所需要的对象:
<%@ Page language="VB" runat="server" %>
<%@ Import namespace="System.Data" %>
<%@ Import namespace="System.XML" %>
接着跳到<body>,这里使用DataGrid控件格式化信息,并把它们显示为HTML表。代码仍非常简洁。包含属性runat="server"是很重要的,这样才能让ASP.NET工作。而且,每个控件都必须有一个名称(ID),在本例中是DataGrid1。
<body>
<ASP:DataGrid id="DataGrid1" runat="server" />
</body>
最后分析一下ASP.NET代码,这些代码位于Page_load()子例程中,所以在创建页面时会自动执行。前几行代码把文件名记录到一个变量中:
<script language="vb" runat="server">
Sub Page_Load()
Dim XMLFilename As String
XMLFilename= "C:\BegASPNET11\ch02\artists.XML"
接着建立一个DataSet,给它读入XML文件的内容:
Dim newDataSet As New DataSet
newDataSet.ReadXML(XMLFilename)
最后,把DataSet作为DataGrid的信息源:
DataGrid1.DataSource = newDataSet
DataGrid1.DataBind()
End Sub
</script>
可以看出,读取XML文件要比连接数据库所使用的代码更简单。但是,目前还没有解释每行代码。第8和9章将详细介绍每个语句的作用。