Freigeben über


Verwenden Der XPath-Funktion "contains() " beim Programmieren des MSXML-DOM

In diesem Artikel wird gezeigt, wie Sie die contains() XPath Funktion beim Programmieren des MSXML-DOM verwenden.

Ursprüngliche Produktversion: Microsoft XML
Ursprüngliche KB-Nummer: 304265

Übersicht

Wenn Sie das Microsoft XML (MSXML) Document Object Model (DOM) im Code zum Laden und Analysieren eines XML-Dokuments verwenden, ist es üblich, Elemente und/oder Elemente mit Attributen zu identifizieren, deren Daten einen angegebenen Zeichenfolgenwert oder ein bestimmtes Wort enthalten. In diesem Artikel wird ein Codebeispiel dokumentiert, das veranschaulicht, wie Sie die Zeichenfolgenfunktion xml Path Language (XPath) verwenden können, um diese Anforderung zu implementieren.

Schritt-für-Schritt-Beispiel

  1. Erstellen Sie im Editor ein neues XML-Dokument, benennen Sie es Books.xml, und fügen Sie den folgenden XML-Code ein:

    <?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. Speichern Sie Books.xml im Stammordner von Laufwerk C.

  3. Öffnen Sie ein neues Standard EXE-Projekt in Microsoft Visual Basic. Formular1 wird standardmäßig erstellt.

  4. Klicken Sie im Menü "Projekt" auf "Verweise", und aktivieren Sie dann das Kontrollkästchen "Microsoft XML 3.0 ".

  5. Ziehen Sie eine Befehlsschaltfläche, und legen Sie sie auf Form1 ab.

  6. Kopieren Sie den folgenden Code, und fügen Sie ihn in die Click-Ereignisprozedur der Befehlsschaltfläche ein:

    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. Der vorangehende Code lädt den XML-Code aus Books.xml in eine Instanz des MSXML DOMDocument-Objekts. Anschließend wird eine XPath-Abfrage ausgeführt, die die contains XPath Funktion verwendet, um alle Buchtitel zu identifizieren, die das Wort ADO enthalten. Schließlich durchläuft die For-Schleife die ausgewählten Knoten und zeigt die übereinstimmenden Titel an, die durch Ausführen der XPath-Abfrage identifiziert wurden.

  8. Der erste Parameter der contains XPath Funktion wird verwendet, um den Quellknoten oder die Zeichenfolge anzugeben, für den der Vergleich ausgeführt werden soll. Der zweite Parameter ist eine Zeichenfolge, die das Wort oder den Zeichenfolgenwert angibt, nach dem im Quellknoten gesucht werden soll. Es ist wichtig zu beachten, dass die Groß-/Kleinschreibung genau beachtet werden muss, wenn ein String oder Wort als zweiter Parameter in der contains-Funktion verwendet wird.