Cómo recuperar datos XML en ASP con el proveedor sencillo de OLE DB de XML

Seleccione idioma Seleccione idioma
Id. de artículo: 272270 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Resumen

Este artículo incluye instrucciones paso a paso para configurar un cliente ASP que muestra el uso del proveedor OLEDB simple para XML tener acceso a datos XML jerárquicos.
El proveedor sencillo de OLE DB para XML (XML OSP) puede utilizarse para cargar datos en un documento XML en un conjunto de registros ADO de sólo lectura. Los datos es, a continuación, leer y tener acceso mediante los métodos del objeto Recordset de ADO estándar. Este proveedor puede utilizarse para proporcionar un método diferente de trabajar con datos jerárquicos que se encuentra en documentos XML.

Más información

Ejecute los pasos siguientes en secuencia para configurar y probar una página ASP que utiliza la OSP XML para tener acceso a datos jerárquicos que se almacenan en un documento XML:
  1. Abra un nuevo archivo en el Bloc de notas. Copie y pegue el código siguiente en él y, a continuación, guarde el archivo como TestOSP.asp en un directorio virtual de IIS que tiene permisos para ejecutar secuencias de comandos:
    <%@ Language=VBScript %>
    
    <!--#include file="adovbs.inc" -->
    <%
    
        Dim adoRS       'ADODB.Recordset
        Set adoRS =  CreateObject("ADODB.Recordset")
      
        
        ' Set up the Connection
        adoRS.ActiveConnection = "Provider=MSDAOSP; Data Source=MSXML2.DSOControl.2.6;"
         
        ' Open the XML source
        adoRS.Open Server.MapPath(".") & "\portfolio.xml"
        
        printtbl adoRS, 0
        
        If adoRS.State = adStateOpen Then
            adoRS.Close
        End If
        Set adoRS = Nothing
        Response.End 
    
    ' Function to recurcusively retrieve the data
    Sub printtbl(rs, indent)
            
        Dim rsChild         'ADODB.Recordset
        Dim Col             'ADODB.Field
        
        set rsChild = Server.CreateObject("ADODB.Recordset")
       
        While rs.EOF <> True
            For Each Col In rs.Fields
                If Col.Name <> "$Text" Then   ' $Text to be ignored
                    If Col.Type <> adChapter Then
                        ' Output the non-chaptered column
                        Response.Write( String((indent)," " )  & Col.Name & ": " & Col.Value )
                    Else
                        Response.Write("<br/>")
                        ' Retrieve the Child recordset
                        Set rsChild = Col.Value
                        rsChild.MoveFirst
                        If Err Then 
                            Response.write("Error: " &  Error ) 
                            Response.end
                        end if     
                        printtbl rsChild, indent + 4
                        rsChild.Close
                        Set rsChild = Nothing
                    End If
                End If
            Next
            Response.Write( "<br/>")
            rs.MoveNext
        Wend
        
    End Sub
    
    %>
    					
  2. El código en el archivo ASP anterior utiliza el proveedor sencillo de OLEDB para XML para cargar datos desde un archivo XML denominado portfolio.xml en un objeto Recordset de ADO. Abrir un nuevo archivo en el Bloc de notas y copie y pegue el siguiente código XML. Guarde el archivo como portfolio.xml en el directorio virtual de IIS donde guardó TestOSP.asp :
    <portfolio>
        <stock>
            <symbol>CTS</symbol>
            <price>$66.00</price>
            <info>
                <companyname>Contoso Pharmaceuticals</companyname>
                <website>http://www.contoso.com</website>
            </info>
        </stock>
        <stock>
            <symbol>FAB</symbol>
            <price>$110.00</price>
            <info>
                <companyname>Fabrikam, Inc</companyname>
                <website>http://www.fabricam.com</website>
            </info>
        </stock>
        <stock>
            <symbol>PRO</symbol>
            <price>$50.00</price>
            <info>
                <companyname>Proseware, Inc</companyname>
                <website>http://www.proseware.com</website>
            </info>
        </stock>
        <stock>
            <symbol>WWI</symbol>
            <price>$136.00</price>
            <info>
                <companyname>Wide World Importers</companyname>
                <website>http://www.worldwideimporters.com</website>
            </info>
        </stock>
    </portfolio>
    
    					
  3. Vaya a TestOSP.asp con Internet Explorer y observe que se muestran los datos de portfolio.xml según sea necesario. El código en el ASP utiliza la OSP XML para cargar los datos XML en un objeto Recordset de ADO y a continuación, recorre los registros del conjunto de registros y escribe los valores de los campos en el objeto Response de ASP.

Propiedades

Id. de artículo: 272270 - Última revisión: martes, 13 de julio de 2004 - Versión: 2.2
La información de este artículo se refiere a:
  • Microsoft ActiveX Data Objects 2.6
  • Microsoft ActiveX Data Objects 2.7
  • Microsoft Data Access Components 2.6
  • Microsoft Data Access Components 2.7
  • Microsoft Active Server Pages 4.0
  • Microsoft XML Parser 2.6
  • Microsoft XML Parser 3.0
  • Microsoft XML Core Services 4.0
Palabras clave: 
kbmt kbhowto KB272270 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 272270

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com