Makale numarası: 272270 - Son Gözden Geçirme: 13 Temmuz 2004 Salı - Gözden geçirme: 2.2

Nasıl yapılır: ASP XML OLE-DB Basit Sağlayıcısı ile XML verilerini Al

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.
Hepsini aç | Hepsini kapa

Özet

Bu makalede, OLEDB basit sağlayıcısı için sıradüzenli XML verilerine erişmek XML kullanımını gösteren bir ASP istemcisi ayarlamak için adım adım yönergeler içerir.
<a1>XML</a1> (XML OSP) ilgili OLE DB Basit Sağlayıcısı, XML belgesindeki verileri salt okunur bir ADO kayıt yüklemek için kullanılabilir. Verileri daha sonra okumak ve ADO Recordset nesnesi standart yöntemleri kullanılarak erişilen. Bu sağlayıcı, XML belgelerinde bulunan hiyerarşik veriyle çalışmak için farklı bir yöntem sağlamak için kullanılabilir.

Daha fazla bilgi

Sıradaki ayarlamak ve bir XML belgesinde depolanan hiyerarşik verilerine erişmek için XML OSP kullanan bir ASP sayfası sınamak için aşağıdaki adımları çalıştırın:
  1. Yeni bir dosya, Microsoft Not Defteri'nde açın. Kopyalama ve aşağıdaki kodu içine yapıştırın ve dosyayı komut dosyalarını çalıştırmak için gerekli izinlere sahip bir IIS sanal dizininde TestOSP.asp kaydedin:
    <%@ 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. ASP dosyası önceki kod XML basit OLEDB Sağlayıcısı portfolio.xml bir ADO Recordset nesnesine adlı XML dosyasından veri yüklenemedi kullanır. Yeni bir dosya Not Defteri'nde açın ve kopyalayın ve sonra da aşağıdaki XML içine yapıştırın. Dosyayı portfolio.xmlTestOSP.asp kaydettiğiniz IIS sanal dizininde olarak kaydedin:
    <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. ınternet Explorer'la TestOSP.asp bulun ve portfolio.xml verilerde görüntülendiğini unutmayın gerektiği gibi. ASP kodunda bir ADO Recordset, XML verileri yüklenemedi XML OSP kullanır ve sonra kümesindeki kayıtlar arasında döngüsü ve alanlarındaki değerleri öğrenmek için ASP Response nesnesi yazar.

Bu makaledeki bilginin uygulandığı durum:
  • 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
Anahtar Kelimeler: 
kbmt kbhowto KB272270 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:272270  (http://support.microsoft.com/kb/272270/en-us/ )