MSXML DOM'sini programlarken contains() XPath işlevini kullanın

Bu makalede, MSXML DOM'unu contains() XPath programlarken işlevinin nasıl kullanılacağı gösterilmektedir.

Orijinal ürün sürümü: Microsoft XML
Özgün KB numarası: 304265

Özet

Bir XML belgesini yüklemek ve ayrıştırmak için kodda Microsoft XML (MSXML) Belge Nesne Modeli 'ni (DOM) kullandığınızda, verileri belirtilen bir dize değeri veya sözcüğü içeren özniteliklere sahip öğeleri ve/veya öğeleri tanımlamak yaygın bir programlama uygulamasıdır. Bu makalede, bu gereksinimi uygulamak için contains XML Path Language (XPath) dize işlevini nasıl kullanabileceğinizi gösteren bir kod örneği belgelemektedir.

Adım Adım Örnek

  1. Not Defteri'nde, Books.xmladlı yeni bir XML belgesi oluşturun ve aşağıdaki XML'yi yapıştırın:

    <?xml version="1.0"?>
    <!-- This file represents a fragment of a bookstore inventory database -->
    <bookstore specialty="novel">
     <book>
         <Title>Beginning XML</Title>
         <Publisher>Wrox</Publisher>
     </book>
     <book>
         <Title>Professional XML</Title>
         <Publisher>Wrox</Publisher>
     </book>
     <book>
         <Title>Programming ADO</Title>
         <author>
             <first-name>Mary</first-name>
             <last-name>Bob</last-name>
         </author>
         <datePublished>1/1/2000</datePublished>
         <Publisher>Microsoft Press</Publisher>
     </book>
    </bookstore>
    
  2. Books.xml C sürücüsünün kök klasörüne kaydedin.

  3. Microsoft Visual Basic'te yeni bir Standart EXE projesi açın. Form1 varsayılan olarak oluşturulur.

  4. Proje menüsünde Başvurular'a tıklayın ve ardından Microsoft XML 3.0 onay kutusunu seçin.

  5. Komut düğmesini sürükleyin ve Form1'e bırakın.

  6. Komut düğmesinin Click olay yordamına aşağıdaki kodu kopyalayıp yapıştırın:

    Dim doc As MSXML2.DOMDocument
    Dim nlist As MSXML2.IXMLDOMNodeList
    Dim node As MSXML2.IXMLDOMNode
    
    Set doc = New MSXML2.DOMDocument
    doc.setProperty "SelectionLanguage", "XPath"
    doc.Load "c:\books.xml"
    Set nlist = doc.selectNodes("//book/Title[contains(.,'ADO')]")
    MsgBox "Matching Nodes : " & nlist.length
    
    For Each node In nlist
        Debug.Print node.nodeName & " : " & node.Text
    Next
    
  7. Yukarıdaki kod, XML'yi Books.xml'den MSXML DOMDocument nesnesinin bir örneğine yükler. Ardından ADO sözcüğünü contains XPath içeren tüm Book başlıklarını tanımlamak için işlevini kullanan bir XPath sorgusu çalıştırır. Son olarak For döngüsü seçilen düğümlerde yinelenir ve XPath sorgusu çalıştırılarak tanımlanan eşleşen başlıkları görüntüler.

  8. İşlevin contains XPath ilk parametresi, karşılaştırmanın yürütülacağı kaynak düğümü veya dizeyi belirtmek için kullanılır. İkinci parametre, kaynak düğümde aranacak sözcüğü veya dize değerini belirten bir dizedir. contains işlevinin ikinci parametresi olarak sağlanan dizenin veya sözcüğün büyük/küçük harfe duyarlı olduğunu unutmayın.