Cómo devolver XML desde una página Web ASP

Exención de responsabilidades de contenido KB retirado

Este artículo se refiere a productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Resumen

Devolver XML datos desde una página Web de páginas Active Server (ASP) están un requisito habitual en programación. El método adoptado para implementar este requisito varía según la versión de Microsoft Internet Information Services (IIS) que se utiliza para alojar la aplicación ASP. Este documento contiene instrucciones paso a paso con ejemplos de código para demostrar cómo se pueden devolver datos de lenguaje de marcado Extensible (XML) desde una página ASP.

Los ejemplos de código siguientes crean una página ASP que devuelve el contenido de un objeto recordset de ActiveX Data Objects (ADO) que se almacena en formato XML. El código se conecta a una instancia de la base de datos de ejemplo PUBS de SQL Server y abre un objeto recordset de ADO mediante la ejecución de una consulta SELECT para recuperar datos de la tabla Authors. A continuación, se devuelve el conjunto de registros en formato XML al explorador del cliente mediante capacidades conservadas de ADO y el método Write del objeto ASP respuesta .

1. requisitos previos

La lista siguiente describe el hardware recomendado, software, infraestructura de red y los service packs que necesita:

  • Microsoft Windows 2000 Professional, Windows 2000 Server o Windows 2000 Advanced Server
  • Microsoft Internet Information Server (IIS) 5.0
o

  • Microsoft Windows NT 4.0 Server
  • Microsoft Internet Information Server (IIS) 4.0

2. preparar el sitio Web

  1. En el Explorador de Windows, cree una carpeta denominada PruebaXml en la carpeta raíz del servidor Web, que normalmente se encuentra en C:\Inetpub\Wwwroot\.
  2. Haga clic en la carpeta recién creada y, a continuación, haga clic en Propiedades.
  3. En la ficha seguridad , agregue el grupo todos y permitir que los permisos tanto de lectura y escritura para el grupo todos a la carpeta. Haga clic en Aceptar para aceptar los cambios.
  4. En el menú Inicio , seleccione programas, seleccione Herramientas administrativasy, a continuación, haga clic en Administrador de servicios Internet.
  5. En Servicios de Internet Information Server, haga doble clic para expandir la entrada para el servidor local.
  6. (Ratón) en el sitio Web predeterminado, seleccione nuevoy, a continuación, haga clic en Directorio Virtual. En el asistente, siga estos pasos:
    1. Cuando se le pida, escriba PruebaXml en el cuadro de texto Alias del directorio Virtual y, a continuación, haga clic en siguiente.
    2. Cuando se le pida que escriba el directorio de contenido del sitio Web, haga clic en Examinar, seleccione el directorio PruebaXml recién creado y, a continuación, haga clic en siguiente.
    3. Cuando se le pida que seleccione los permisos de acceso, seleccione lectura y Ejecutar secuencias de comandos (como ASP). Ningún otro permiso de acceso es necesario para este ejemplo. Haga clic en siguiente para completar al asistente.
  7. Haga doble clic en el sitio Web predeterminado.
  8. Haga clic en el nuevo directorio virtual y, a continuación, haga clic en Propiedades.
  9. En la ficha directorio , compruebe que aparece el nombre del sitio Web (tal y como se escribió en el paso 6a) en el cuadro de texto Nombre de la aplicación bajo Configuración de la aplicación. Si no es así, haga clic en crear para crear la aplicación.
  10. Cierre el cuadro de diálogo de Propiedades e IIS.

3. ejemplo de código XML Windows 2000

  1. En el menú Inicio , seleccione programas, Accesoriosy, a continuación, haga clic en Bloc de notas.
  2. Seleccione el código siguiente, haga clic derecho en el código y, a continuación, haga clic en Copiar. En el Bloc de notas, haga clic en Pegar en el menú Edición para agregar el siguiente código al archivo:
    <% 
    '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=<userid>;" & _
    "Password=<password>;" & _
    "Initial Catalog=pubs;" & _
    "Data Source=<servername>"

    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

    %>

  3. En la línea 20 del código, reemplace < ID > con su nombre de usuario.
  4. En línea 21 del código, reemplace < contraseña > por la contraseña.
  5. En la línea 23 del código, reemplace < nombreDeServidor > con su SQL Server.
  6. En el menú archivo , haga clic en Guardar.
  7. En el cuadro de lista desplegable Guardar en , vaya a la carpeta PruebaXml creada anteriormente. En el cuadro de texto nombre de archivo , escriba Xmlw2k.aspy haga clic en Todos los archivos en el cuadro de lista desplegable Guardar como tipo . Por último, haga clic en Guardar para guardar el archivo.
  8. Para ver la página, iniciar el explorador Web y escriba la dirección HTTP de la página en la barra de direcciones. Si guardó el archivo en la ubicación mencionada anteriormente, escriba http://<nombreServidor> /Xmltest/Xmlw2k.asp en la barra de direcciones.

4. ejemplo de código XML Windows NT 4.0

  1. En el menú Inicio , seleccione programas, Accesoriosy, a continuación, haga clic en Bloc de notas.
  2. Seleccione el código siguiente, haga clic derecho en el código y, a continuación, haga clic en Copiar. En el Bloc de notas, haga clic en Pegar en el menú Edición para agregar el siguiente código al archivo:
    <% '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=<userid>;" & _
    "Password=<password;" & _
    "Initial Catalog=pubs;" & _
    "Data Source=<servername>"

    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
    %>

  3. En la línea 20 del código, reemplace < ID > con su nombre de usuario.
  4. En línea 21 del código, reemplace < contraseña > por la contraseña.
  5. En la línea 23 del código, reemplace < nombreDeServidor > con su SQL Server.
  6. En el menú archivo , haga clic en Guardar.
  7. En el cuadro de lista desplegable Guardar en , vaya a la carpeta PruebaXml creada anteriormente. En el cuadro de texto nombre de archivo , escriba Xmlnt4.aspy haga clic en Todos los archivos en el cuadro de lista desplegable Guardar como tipo . Por último, haga clic en Guardar para guardar el archivo.
  8. Para ver la página, iniciar el explorador Web y escriba la dirección HTTP de la página en la barra de direcciones. Si guardó el archivo en la ubicación mencionada anteriormente, escriba http://<nombreServidor> /Xmltest/Xmlnt4.asp en la barra de direcciones. Nota: código de ejemplo de la Windows NT 4.0 también funciona cuando utiliza IIS 5.0 con Windows 2000.

5. dificultades de

  1. Cuando tiene acceso a la página ASP, el explorador devuelve una página en blanco. Compruebe para asegurarse de que incluyó la siguiente línea en la parte superior de la página ASP:
    Response.ContentType = "text/xml"
    Esto debe ser la primera línea de código en la página ASP.
  2. En IIS 5.0 (ASP 3.0), el objeto de respuesta de ASP implementa la interfaz IStream . Por lo tanto, es posible conservar directamente un conjunto de registros ADO (en formato XML) o un objeto DOMDocument MSXML cargado con datos XML en el objeto Response .
  3. En IIS 4.0 (ASP 2.0), el objeto de respuesta de ASP no implementa la interfaz IStream de COM. Por lo tanto, es necesario utilizar el método Write del objeto Response para devolver XML desde ASP. El argumento del método Write debe ser una cadena XML bien formada o una variable que contiene una cadena XML con formato correcto.
Propiedades

Id. de artículo: 301244 - Última revisión: 22 ene. 2017 - Revisión: 2

Comentarios