概要
从ActiveServerPages(ASP)Web页返回XML数据是一种常见的编程要求。实现此要求所用的方法因用来托管ASP应用程序的MicrosoftInternet信息服务(IIS)的版本而异。本文中的分步指南带有相关的示例代码,演示了怎样从ASP页返回可扩展标记语言(XML)数据。
下面的示例代码创建一个ASP页,此页返回XML格式的ActiveXDataObjects(ADO)记录集的内容。此代码连接着SQLServerPUBS示例数据库的一个实例,而且它通过执行SELECT查询语句以从Authors表中检索数据的这一方式来打开ADO记录集。然后,使用ADO的保存功能和ASPResponse对象的Write方法,将此记录集以XML的格式返回给客户端浏览器。
1.先决条件
下面简要列出了推荐使用的硬件、软件、网络架构以及所需的ServicePack:
MicrosoftWindows2000专业版、Windows2000Server或Windows2000AdvancedServer
MicrosoftInternetInformationServer(IIS)5.0
或
MicrosoftWindowsNT4.0Server
MicrosoftInternetInformationServer(IIS)4.0
2.准备Web站点
在Windows资源管理器中,在Web服务器的根文件夹(通常在C:\Inetpub\Wwwroot\)下创建一个名为Xmltest的文件夹。
右键单击新创建的文件夹,然后单击属性。
在安全选项卡上,添加所有人组,并向“所有人”组授予对此文件夹的读和写权限。单击确定接受更改。
在开始菜单上,指向程序,指向管理工具,然后单击Internet服务管理器。
在Internet信息服务下,双击展开对应于本地服务器的条目。
右键单击“默认Web站点”,指向新建,然后单击虚拟目录。在向导中,按照下列步骤操作:
系统提示时,在虚拟目录别名文本框中键入XMLTest,然后单击下一步。
当提示您键入Web站点内容目录时,单击浏览,选择新创建的XMLTest目录,然后单击下一步。
在提示您选择访问权限时,选择读和运行脚本(例如ASP)。本例中不需要其他任何访问权限。单击下一步以完成向导。
双击“默认Web站点”。
右键单击新的虚拟目录,然后单击属性。
在目录选项卡上,检查在应用程序设置下面的应用程序名文本框中是否列出了Web站点名称(在步骤6a中键入的名称)。如果未列出,请单击创建以创建该应用程序。
关闭属性对话框和IIS。
3.Windows2000XML示例代码
在开始菜单上,指向程序,指向附件,然后单击记事本。
选定以下代码,右键单击所选内容,然后单击复制。在记事本中,单击编辑菜单上的粘贴,将以下代码添加到该文件中:
<%
'VeryImportant:SettheContentTypepropertyoftheResponseobjecttotext/xml.
Response.ContentType="text/xml"
Dimcn
Dimrs
DimxmlDoc
Setcn=Server.CreateObject("ADODB.Connection")
Setrs=Server.CreateObject("ADODB.Recordset")
'ReplacetheADOConnectionstringattributes
'inthefollowinglineofcodetopointtoyour
'instanceofSQLServer,andtospecifythe
'requiredsecuritycredentialsforUserIDandPassword.
cn.Open"Provider=SQLOLEDB.1;"&_
"UserID=<userid>;"&_
"Password=<password>;"&_
"InitialCatalog=pubs;"&_
"DataSource=<servername>"
rs.CursorLocation=3
rs.Open"Select*fromAuthors",cn
'PersisttheRecorsetinXMLformattotheASPResponseobject.
'TheconstantvalueforadPersistXMLis1.
rs.SaveResponse,1
%>
在第20行代码中,将<userid>替换为您的用户名。
在第21行代码中,将<password>替换为您的密码。
在第23行代码中,将<servername>替换为您的SQLServer。
在文件菜单上,单击保存。
在保存在下拉列表框中,浏览到您在前面创建的Xmltest文件夹。在文件名文本框中,键入Xmlw2k.asp,并在保存类型下拉框中单击所有文件。最后单击保存以保存该文件。
若要查看该页,请启动Web浏览器,然后在地址栏中键入该页的HTTP位置。如果您将文件保存到了前面提到的位置,则请在地址栏中键入http://<服务器名>/Xmltest/Xmlw2k.asp。
4.WindowsNT4.0XML示例代码
在开始菜单上,指向程序,指向附件,然后单击记事本。
选定以下代码,右键单击所选内容,然后单击复制。在记事本中,单击编辑菜单上的粘贴,将以下代码添加到该文件中:
<%
'VeryImportant:SettheContentTypepropertyof
'theResponseobjecttotext/xml.
Response.ContentType="text/xml"
Dimcn
Dimrs
DimxmlDoc
Setcn=Server.CreateObject("ADODB.Connection")
Setrs=Server.CreateObject("ADODB.Recordset")
'ReplacetheADOConnectionstringattributes
'inthefollowinglineofcodetopointtoyour
'instanceofSQLServer,andtospecifythe
'requiredsecuritycredentialsforUserIDandPassword.
cn.Open"Provider=SQLOLEDB.1;"&_
"UserID=<userid>;"&_
"Password=<password;"&_
"InitialCatalog=pubs;"&_
"DataSource=<servername>"
rs.CursorLocation=3
rs.Open"Select*fromAuthors",cn
SetxmlDoc=Server.CreateObject("Microsoft.XMLDOM")
'PersisttheRecorsetinXMLformattotheDOMDocumentobject.
'TheconstantvalueforadPersistXMLis1.
rs.SavexmlDoc,1
rs.Close
cn.Close
Setrs=Nothing
Setcn=Nothing
'WriteoutthexmlpropertyoftheDOMDocument
'objecttotheclientBrowser
Response.Writexmldoc.xml
%>
在第20行代码中,将<userid>替换为您的用户名。
在第21行代码中,将<password>替换为您的密码。
在第23行代码中,将<servername>替换为您的SQLServer。
在文件菜单上,单击保存。
在保存在下拉列表框中,浏览到您在前面创建的Xmltest文件夹。在文件名文本框中,键入Xmlnt4.asp,并在保存类型下拉框中单击所有文件。最后单击保存以保存该文件。
若要查看该页,请启动Web浏览器,然后在地址栏中键入该页的HTTP位置。如果您将文件保存到了前面提到的位置,则请在地址栏中键入http://<服务器名>/Xmltest/Xmlnt4.asp。备注:当在Windows2000中使用IIS5.0时,此WindowsNT4.0示例代码也可以运行。