Verwenden der XPath-Funktion "starts-with()"

In diesem Artikel wird die Verwendung der starts-with() XPath-Funktion beschrieben.

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

Zusammenfassung

Dies ist eine häufige Programmieranforderung, wenn Sie ein XML-Dokument mithilfe des MICROSOFT XML(MSXML)-DOM (Document Object Model) laden und analysieren, um Elemente und/oder Elemente mit Attributen zu identifizieren, deren Werte mit einem bestimmten Zeichen oder einer bestimmten Zeichenfolge beginnen. Dieser Artikel enthält ein Codebeispiel, das veranschaulicht, wie Sie die starts-with XPath-Zeichenfolgenfunktion (XML Path Language) verwenden können, um diese Anforderung zu implementieren.

Schritt-für-Schritt-Beispiel

  1. Erstellen Sie im Editor ein neues XML-Dokument mit dem Namen 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 style="autobiography">
            <author>
                <first-name>Joe</first-name>
                <last-name>Bob</last-name>
                <award>Trenton Literary Review Honorable Mention</award>
            </author>
            <price>12</price>
        </book>
        <book style="textbook">
            <author>
                <first-name>Mary</first-name>
                <last-name>Bob</last-name>
                <publication>Selected Short Stories of
                    <first-name>Mary</first-name>
                    <last-name>Bob</last-name>
                </publication>
            </author>
            <price>55</price>
        </book>
    </bookstore>
    
  2. Speichern Sie Books.xml im Stammordner von Laufwerk C.

  3. Öffnen Sie ein neues Standard EXE-Projekt in Visual Basic. Form1 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/author/first-name[starts-with(.,'M')]")
    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 instance des MSXML-ObjektsDOMDocument. Anschließend wird eine XPath-Abfrage ausgeführt, die die starts-with XPath-Funktion verwendet, um alle Autoren zu identifizieren, deren Vornamen mit dem Buchstaben M beginnen. Schließlich durchläuft die For-Schleife die ausgewählten Knoten und zeigt die Vornamen der übereinstimmenden Autorenelemente an.

  8. Der erste Parameter der starts-with XPath-Funktion wird verwendet, um den Quellknoten oder die Zeichenfolge anzugeben, mit dem bzw. der der Vergleich ausgeführt werden soll. Der zweite Parameter ist die Musterzeichenfolge, die das Zeichen oder die Zeichenfolge angibt, die im Vergleich verwendet werden soll. Beachten Sie, dass bei der Musterzeichenfolge, die als zweiter Parameter der starts-with Funktion angegeben wird, die Groß-/Kleinschreibung beachtet wird.