ID do artigo: 272270 - Última revisão: terça-feira, 13 de julho de 2004 - Revisão: 2.2

Como recuperar dados XML no ASP com o provedor Simple de OLE-DB de XML

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Recolher tudo

Sumário

Este artigo inclui instruções passo a passo para configurar um cliente ASP que demonstra o uso do provedor OLEDB simples para XML acessar dados XML hierárquicos.
O provedor de OLE-DB simples para XML (XML OSP) pode ser usado para carregar dados em um documento XML em um conjunto de registros ADO somente leitura. Os dados é, em seguida, ler e acessados usando os métodos padrão do objeto ADO Recordset. Este provedor pode ser usado para fornecer um método diferente de trabalhar com dados hierárquicos contidos em documentos XML.

Mais Informações

Execute as seguintes etapas na seqüência para configurar e testar uma página ASP que usa a OSP XML para acessar dados hierárquicos que são armazenados em um documento XML:
  1. Abra um novo arquivo no bloco de notas. Copie e cole o código seguinte ele e, em seguida, salve o arquivo como TestOSP.asp em um diretório virtual IIS que tem permissões para executar scripts:
    <%@ 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. O código no arquivo ASP anterior usa o provedor de OLEDB simples para XML para carregar dados de um arquivo XML denominado portfolio.xml a um objeto ADO Recordset. Abra um novo arquivo no bloco de notas e copie e cole o seguinte XML para ele. Salve o arquivo como portfolio.xml no diretório virtual IIS onde você salvou 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. Procure TestOSP.asp com o Internet Explorer e observe que os dados no portfolio.xml são exibidos conforme necessário. O código no ASP usa a OSP XML para carregar os dados XML em um conjunto de registros ADO e em seguida, percorre os registros no conjunto de registros e grava os valores nos campos para o objeto de resposta do ASP.

A informação contida neste artigo aplica-se 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
Palavras-chave: 
kbmt kbhowto KB272270 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 272270  (http://support.microsoft.com/kb/272270/en-us/ )