Artigo: 272270 - Última revisão: terça-feira, 13 de Julho de 2004 - Revisão: 2.2

Como obter dados XML no ASP com o fornecedor 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 | Reduzir tudo

Sumário

Este artigo inclui instruções passo a passo para configurar um cliente ASP que demonstra a utilização do fornecedor OLEDB simples para XML para aceder a dados XML hierárquicos.
O fornecedor simples OLE-DB para XML (XML do OSP) pode ser utilizado para carregar dados num documento XML para um conjunto de registos ADO de só de leitura. Os dados são, em seguida, ler e acedidos utilizando os métodos padrão do objecto Recordset do ADO. Este fornecedor pode ser utilizado para fornecer um método diferente de trabalhar com dados hierárquicos existentes em documentos XML.

Mais Informação

Execute os seguintes passos em sequência para configurar e testar uma página ASP que utiliza do OSP XML para aceder a dados hierárquicos que estão armazenados num documento XML:
  1. Abra um ficheiro novo no bloco de notas da Microsoft. Copie e cole o código seguinte no mesmo e, em seguida, guarde o ficheiro como TestOSP.asp num directório virtual IIS que tenha 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 ficheiro de ASP anterior utiliza o fornecedor simples OLEDB para XML para carregar dados de um ficheiro XML denominado portfolio.xml a um objecto Recordset do ADO. Abrir um novo ficheiro no bloco de notas e copie e cole o seguinte XML nela. Guarde o ficheiro como portfolio.xml no directório virtual IIS onde guardou 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 note que os dados portfolio.xml são apresentados conforme necessário. O código de ASP utiliza do OSP XML para carregar os dados XML para um conjunto de registos ADO e, em seguida, ciclos pelos registos no conjunto de registos e escreve os valores nos campos para o objecto de resposta 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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/ )