从ASP Web页返回XML

   概要

  从 Active Server Pages (ASP) Web 页返回 XML 数据是一种常见的编程要求。 实现此要求所用的方法因用来托管 ASP 应用程序的 Microsoft Internet 信息服务 (IIS) 的版本而异。 本文中的分步指南带有相关的示例代码,演示了怎样从 ASP 页返回可扩展标记语言 (XML) 数据。

  下面的示例代码创建一个 ASP 页,此页返回XML 格式的 ActiveX Data Objects (ADO) 记录集的内容。 此代码连接着 SQL Server PUBS 示例数据库的一个实例,而且它通过执行 SELECT 查询语句以从 Authors 表中检索数据的这一方式来打开 ADO 记录集。 然后,使用 ADO 的保存功能和 ASP Response 对象的 Write 方法,将此记录集以 XML 的格式返回给客户端浏览器。

  1. 先决条件

  下面简要列出了推荐使用的硬件、软件、网络架构以及所需的 Service Pack:

  Microsoft Windows 2000 专业版、Windows 2000 Server 或 Windows 2000 Advanced Server

  Microsoft Internet Information Server (IIS) 5.0

  或

  Microsoft Windows NT 4.0 Server

  Microsoft Internet Information Server (IIS) 4.0

  2. 准备 Web 站点

  在 Windows 资源管理器中,在 Web 服务器的根文件夹(通常在 C:InetpubWwwroot)下创建一个名为 Xmltest 的文件夹。

  右键单击新创建的文件夹,然后单击属性。

  在安全选项卡上,添加所有人组,并向“所有人”组授予对此文件夹的读和写权限。单击确定接受更改。

  在开始菜单上,指向程序,指向管理工具,然后单击 Internet 服务管理器。

  在 Internet 信息服务下,双击展开对应于本地服务器的条目。

  右键单击“默认 Web 站点”,指向新建,然后单击虚拟目录。 在向导中,按照下列步骤操作:

  系统提示时,在虚拟目录别名文本框中键入 XMLTest,然后单击下一步。

  当提示您键入 Web 站点内容目录时,单击浏览,选择新创建的 XMLTest 目录,然后单击下一步。

  在提示您选择访问权限时,选择读和运行脚本(例如 ASP)。 本例中不需要其他任何访问权限。单击下一步以完成向导。

  双击“默认 Web 站点”。

  右键单击新的虚拟目录,然后单击属性。

  在目录选项卡上,检查在应用程序设置下面的应用程序名文本框中是否列出了 Web 站点名称(在步骤 6a 中键入的名称)。如果未列出,请单击创建以创建该应用程序。

  关闭属性对话框和 IIS。

  3. Windows 2000 XML 示例代码

  在开始菜单上,指向程序,指向附件,然后单击记事本。

  选定以下代码,右键单击所选内容,然后单击复制。在记事本中,单击编辑菜单上的粘贴,将以下代码添加到该文件中:

  <%

  'Very Important : Set the ContentType property of the Response object to text/xml.

  Response.ContentType = "text/xml"

  Dim cn

  Dim rs

  Dim xmlDoc

  Set cn=Server.CreateObject("ADODB.Connection")

  Set rs=Server.CreateObject("ADODB.Recordset")

  'Replace the ADO Connection string attributes

  'in the following line of code to point to your

  'instance of SQL Server, and to specify the

  'required security credentials for User ID and Password.

  cn.Open "Provider=SQLOLEDB.1;" & _

  "User ID=;" & _

  "Password=;" & _

  "Initial Catalog=pubs;" & _

  "Data Source="

  rs.CursorLocation = 3

  rs.Open "Select * from Authors",cn

  'Persist the Recorset in XML format to the ASP Response object.

  'The constant value for adPersistXML is 1.

  rs.Save Response, 1

  %>

  在第 20 行代码中,将 替换为您的用户名。

  在第 21 行代码中,将 替换为您的密码。

  在第 23 行代码中,将 替换为您的 SQL Server。

  在文件菜单上,单击保存。

  在保存在下拉列表框中,浏览到您在前面创建的 Xmltest 文件夹。 在文件名文本框中,键入 Xmlw2k.asp,并在保存类型下拉框中单击所有文件。最后单击保存以保存该文件。

  若要查看该页,请启动 Web 浏览器,然后在地址栏中键入该页的 HTTP 位置。 如果您将文件保存到了前面提到的位置,则请在地址栏中键入 http://< 服务器名 >/Xmltest/Xmlw2k.asp 。

  4. Windows NT 4.0 XML 示例代码

  在开始菜单上,指向程序,指向附件,然后单击记事本。

  选定以下代码,右键单击所选内容,然后单击复制。在记事本中,单击编辑菜单上的粘贴,将以下代码添加到该文件中:

  <%

  'Very Important : Set the ContentType property of

  'the Response object to text/xml.

  Response.ContentType = "text/xml"

  Dim cn

  Dim rs

  Dim xmlDoc

  Set cn=Server.CreateObject("ADODB.Connection")

  Set rs=Server.CreateObject("ADODB.Recordset")

  'Replace the ADO Connection string attributes

  'in the following line of code to point to your

  'instance of SQL Server, and to specify the

  'required security credentials for User ID and Password.

  cn.Open "Provider=SQLOLEDB.1;" & _

  "User ID=;" & _

  "Password=

  "Initial Catalog=pubs;" & _

  "Data Source="

  rs.CursorLocation = 3

  rs.Open "Select * from Authors",cn

  Set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")

  'Persist the Recorset in XML format to the DOMDocument object.

  'The constant value for adPersistXML is 1.

  rs.Save xmlDoc,1

  rs.Close

  cn.Close

  Set rs = Nothing

  Set cn = Nothing

  'Write out the xml property of the DOMDocument

  'object to the client Browser

  Response.Write xmldoc.xml

  %>

  在第 20 行代码中,将 替换为您的用户名。

  在第 21 行代码中,将 替换为您的密码。

  在第 23 行代码中,将 替换为您的 SQL Server。

  在文件菜单上,单击保存。

  在保存在下拉列表框中,浏览到您在前面创建的 Xmltest 文件夹。 在文件名文本框中,键入 Xmlnt4.asp,并在保存类型下拉框中单击所有文件。最后单击保存以保存该文件。

  若要查看该页,请启动 Web 浏览器,然后在地址栏中键入该页的 HTTP 位置。 如果您将文件保存到了前面提到的位置,则请在地址栏中键入 http://< 服务器名 >/Xmltest/Xmlnt4.asp。备注: 当在 Windows 2000 中使用 IIS 5.0 时,此 Windows NT 4.0 示例代码也可以运行。

  5. 缺陷

  当您访问 ASP 页时,浏览器返回空白页。 请检查您是否在 ASP 页的顶部包括了下面这一行:

  Response.ContentType = "text/xml"

  这应是 ASP 页中的第一行代码

  在 IIS 5.0 (ASP 3.0) 中,ASP Response 对象实现了 IStream 接口。 所以可以将一个 ADO 记录集(XML 格式),或一个加载了 XML 数据的 MSXML DOMDocument 对象直接保持到 Response 对象。

  在 IIS 4.0 (ASP 2.0) 中,ASP Response 对象未实现 IStream COM 接口。 所以必须使用 Response 对象的 Write 方法从 ASP 中返回 XML。 传递给 Write 方法的参数必须是一个完整格式的 XML 字符串,或是包含一个完整格式 XML 字符串的变量。

时间: 2024-10-28 00:11:24

从ASP Web页返回XML的相关文章

从 ASP Web 页返回 XML

概要从 Active Server Pages (ASP) Web 页返回 XML 数据是一种常见的编程要求. 实现此要求所用的方法因用来托管 ASP 应用程序的 Microsoft Internet 信息服务 (IIS) 的版本而异. 本文中的分步指南带有相关的示例代码,演示了怎样从 ASP 页返回可扩展标记语言 (XML) 数据.  下面的示例代码创建一个 ASP 页,此页返回XML 格式的 ActiveX Data Objects (ADO) 记录集的内容. 此代码连接着 SQL Serv

Web Service 返回XML 反序列化问题

问题描述 返回的XML内有个节点在所对应的实体内为string,但是这个节点的值是XML格式,导致反序列化失败...如:<Info><Flag1>AAA</Flag1><Flag2>BBB</Flag2><Flag3>CCC</Flag3><Flag4>DDD</Flag4></Info>反序列化后期望:Info="<Flag1>AAA</Flag1>&

关于web Service 返回xml问!!!!!

问题描述 HTTP/1.0200OKServer:Apache-Coyote/1.1Set-Cookie:JSESSIONID=BFECED4E58A5BF0BF42994FEC465BBEC;Path=/Content-Type:text/html;charset=utf-8Content-Length:2104Date:Mon,10Mar200802:21:20GMTX-Cache:MISSfromwww.51tv.netConnection:close怎么返回上面东东???????????

用ASP.NET创建管理XML WEB服务全接触

asp.net|web|web服务|xml|创建 Internet的发展已经用它超乎想象的力量重新规划了应用程序开发领域.公司和机构越来越依赖因特网和有关技术提供的数字资源和通讯渠道.因而,现在设计和开发的应用程序很少不考虑如何最好的整合和运用Internet技术.在应用程序中整合Internet技术成为业界对开发技术的提出的新的要求.微软适时提出的以XML为基础的Web服务满足了这种需求,本期专题我将向大家介绍利用ASP.NET的创建和管理XML WEB服务的过程. 概述 XML Web服务是

ASP.NET创建Web服务之XML基础结构

asp.net|web|web服务|xml|创建 为了在网络多样性方面取得成功,XML Web服务必须不关心所选择的操作系统.对象模型和程序语言.而且,XML Web服务为了和其他基于Web的技术一样被广泛接受,它们必须: 松散耦联:如果两个系统中,只有使用的命令能理解前面提到过的自我描述基于文本的消息,那么这两个系统就被认为是松散耦联的.而另一方面,紧密耦联的系统使用大量的定制的软件来增强系统间的通讯,并且需要对系统之间了解的更多. 无所不在的通信:现在个人不太可能能够构造一个操作系统,或者在

ASP.NET中利用SQLXML WEB服务访问XML数据

asp.net|sql|web|web服务|xml|访问|数据      引言 使用SQLXML 的Web 服务从你的ASP.net应用程序中直接访问XML 数据       SQLXML 是扩展SQL 服务器现有的对检索和储存XML 数据的支持的一套附加的工具. 有了SQLXML 3.0,你现在就能使用SQL服务器展示Web 服务了.在SQLXML的Web 服务可以让用户执行存储过程,用户定义的功能,并且它们支持模板.       在这篇文章中,你将看出怎样展示一个作为Web 服务并构建一个简

ASP.NET中根据XML动态创建并使用WEB组件(三)

asp.net|web|xml|创建|动态 ASP.NET中根据XML动态创建使用WEB组件 (三) 作者:厉铁帅 四.使用动态创建的WEB组件 如果在动态创建了WEB组件后,要使用该组件,可使用如下语句 String sequencelabelID="sequencedataTB"+icount.ToString(); Label sequencelabel=(Label)myPlaceHolder.FindControl(sequencelabelID); Sequencelabe

asp.net Web页执行SQL程序代码

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ManageSQL.aspx.cs" Inherits="manage_ManageSQL" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/

ASP.NET中根据XML动态创建并使用WEB组件(一)

asp.net|web|xml|创建|动态 ASP.NET中根据XML动态创建使用WEB组件 (一) 作者:厉铁帅 前段时间笔者在开发中需要动态创建WEB组件,本以为是小事一桩,谁知看时容易做时难.里面还真有些小问题.下面笔者就结合自己的程序来介绍一下如何动态创建并使用WEB组件,希望能给做类似工作的朋友提供一点帮助. 一.程序思路 程序主要分三部分: 1.程序要根据XML中的数据信息确定需要创建的WEB组件的个数. 2.动态创建WEB组件. 3.使用动态创建的WEB组件. 其中2和3是笔者要重