Udostępnij za pośrednictwem


Korzystanie z funkcji starts-with() XPath

W tym artykule opisano sposób używania starts-with() funkcji XPath.

Oryginalna wersja produktu: Microsoft XML
Oryginalny numer KB: 303516

Podsumowanie

Jest to typowe wymaganie programistyczne podczas ładowania i analizowania dokumentu XML przy użyciu modelu obiektów dokumentów Microsoft XML (MSXML) w celu identyfikowania elementów i/lub elementów z atrybutami, których wartości zaczynają się od określonego znaku lub sekwencji znaków. Ten artykuł zawiera przykładowy kod, który pokazuje, jak można użyć starts-with funkcji ciągu XML Path Language (XPath) w celu zaimplementowania tego wymagania.

Przykład krok po kroku

  1. W Notatniku utwórz nowy dokument XML o nazwie Books.xmli wklej następujący kod XML:

    <?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. Zapisz Books.xml w folderze głównym dysku C.

  3. Otwórz nowy projekt EXE w warstwie Standardowa w Visual Basic. Formularz1 jest tworzony domyślnie.

  4. Z menu Projekt kliknij Odwołania, a następnie zaznacz pole wyboru Microsoft XML 3.0.

  5. Przeciągnij przycisk Przycisk polecenia i upuść go na Form1.

  6. Skopiuj i wklej następujący kod w Click procedurze zdarzenia przycisku Polecenie :

    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. Powyższy kod ładuje kod XML z Books.xml do wystąpienia obiektu MSXML DOMDocument . Następnie wykonuje zapytanie XPath, które używa starts-with funkcji XPath do identyfikowania wszystkich autorów, których imiona zaczynają się od litery M. Na koniec pętla For iteruje przez wybrane węzły i wyświetla pierwsze nazwy pasujących elementów autora.

  8. Pierwszy parametr starts-with funkcji XPath służy do określania węzła źródłowego lub ciągu, względem którego ma zostać wykonane porównanie. Drugi parametr to ciąg wzorca, który określa znak lub sekwencję znaków, która ma być używana w porównaniu. Należy pamiętać, że ciąg wzorca, który jest dostarczany jako drugi parametr starts-with funkcji, jest uwzględniany wielkość liter.