ASP / XML 示例

本文分为以下部分:
创建系统 DSN 若要连接到数据库。
创建 XSL 样式表 对数据进行格式化。
创建 XML 生成器 要输出数据。
测试页 要验证功能的示例。

系统数据源名称 (DSN) 提供对 ASP 页和其他数据客户方法与数据库进行交互。

注意 : 需要是管理员才能创建系统 DSN。
1.创建新文件夹命名 WebData 文件夹包含为默认 Web 站点内容中。 这是 <drive>: 默认 \InetPub\WWWRoot 文件夹。
2.将 NorthWind 示例数据库 (Nwind.mdb) 复制到该新文件夹。 要安装 NorthWind 示例数据库, 安装示例附带 Microsoft Visual Studio 6.0 和 Microsoft Office。 Visual Studio 6.0 安装程序在 <drive> 安装 Nwind.mdb: \ ProgramFiles\Microsoft Visual Studio\VB98 默认。
3.Microsoft Windows 2000, 上, 指向 程序 , 指向 管理工具 , 依次 打开数据源 (ODBC) 开始

控制面板中在 Microsoft Windows 95、 Microsoft Windows 98 和 MicrosoftWindowsNT, 打开数据源 (ODBC)。
4.系统 DSN 选项卡, 单击 添加
5.单击 MicrosoftAccessDriver (*.mdb) , 然后单击 完成
6.单击 选择 。 WebData 文件夹, 中单击 NorthWind 数据库, 并单击 确定
7.DataSourceName@@ @ 文本框中键入 NORTHWIND , 然后单击 确定
8.单击 确定 以退出数据源 (ODBC)。

XML 数据, 到好视图创建 XSL 样式表设置数据格式。
1.在记事本, 粘贴以下 XSL 代码:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="uri:xsl">
<xsl:template match="/">
  <HTML>
  <HEAD><TITLE>XML TEST</TITLE></HEAD>
  <BODY>
  <TABLE BORDER="1">
  <xsl:for-each select="//RECORD">
    <TR>
    <xsl:for-each select="FIELD">
      <TD><xsl:value-of select="VALUE"/></TD>
    </xsl:for-each>
    </TR>
  </xsl:for-each>
  </TABLE>
  </BODY>
  </HTML>
</xsl:template>
</xsl:stylesheet>
					
2.作为 Xmltest.xsl WebData 文件夹中保存网页。

因为 ASP 可格式化以多种方式, 数据库中数据可以从数据是在数据库中找到该输出 XML。
1.在记事本, 粘贴以下 XSL 代码:
<% @ Language="VBScript" %>
<%
  ' Declare all variables.
  Option Explicit
  Dim objCN,objRS,objField
  Dim strSQL,strCN
  Dim strName,strValue

  ' Buffer and output as XML.
  Response.Buffer = True
  Response.ContentType = "text/xml"

  ' Start our XML document.
  Response.Write "<?xml version=""1.0""?>" & vbCrLf
  Response.Write "<?xml:stylesheet type=""text/xsl"" href=""xmltest.xsl""?>" & vbCrLf

  ' Set SQL and database connection string.
  strSQL = "SELECT * FROM Customers"  
  strCN = "DSN=NORTHWIND"

  ' Open the database connection and recordset.
  Set objCN = Server.CreateObject("ADODB.Connection")
  objCN.Open strCN  
  Set objRS = objCN.Execute(strSQL)

  ' Output start of data.
  Response.Write "<DATABASE>" & vbCrLf

  ' Loop through the data records.
  While Not objRS.EOF
    ' Output start of record.
    Response.Write "<RECORD>" & vbCrLf
    ' Loop through the fields in each record.
    For Each objField in objRS.Fields
      strName  = objField.Name
      strValue = objField.Value
      If Len(strName)  > 0 Then strName = Server.HTMLEncode(strName)
      If Len(strValue) > 0 Then strValue = Server.HTMLEncode(strValue)
      Response.Write "<FIELD>" & vbCrLf
      Response.Write "<NAME>" & strName & "</NAME>" & vbCrLf
      Response.Write "<VALUE>" & strValue & "</VALUE>" & vbCrLf
      Response.Write "</FIELD>" & vbCrLf
    Next
    ' Move to next record in database.
    objRS.MoveNext
    ' Output end of record.
    Response.Write "</RECORD>" & vbCrLf
  Wend

  ' Output end of data.
  Response.Write "</DATABASE>" & vbCrLf
%>
					
2.作为 Xmltest.asp WebData 文件夹中保存网页。

在 InternetExplorer, 键入 http://localhost/WebData/xmltest.asp 地址栏中。 使用示例数据库中 Customers 表中信息的 HTML 表格出现。 但是, 如果查看源代码以页, 您看到只, ASP 页生成 XML 数据。 这是因为 InternetExplorer 加载 XML 数据, 然后检索 XSL 样式表设置实际出现输出格式。

此外, XML 数据和 XSL 样式表是通用设计以允许自定义简单数据中。 例如, 您可能修改 SQL 文本, 如下所示:
  strSQL = "SELECT * FROM Employees"
				
此更改数据库表使用, 并代码示例仍然正常。