Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule pokazano, jak używać funkcji contains() XPath
podczas programowania MSXML DOM.
Oryginalna wersja produktu: Microsoft XML
Oryginalny numer KB: 304265
Podsumowanie
Jeśli używasz modelu obiektów dokumentów Microsoft XML (MSXML) w kodzie do ładowania i analizowania dokumentu XML, często praktyką programowania jest identyfikowanie elementów i/lub elementów z atrybutami, których dane zawierają określoną wartość ciągu lub wyraz. W tym artykule opisano przykładowy kod, który pokazuje, jak można użyć funkcji tekstowej XML Path Language (XPath) w celu zaimplementowania tego wymagania.
Przykład krok po kroku
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> <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>
Zapisz Books.xml w folderze głównym dysku C.
Otwórz nowy projekt Standard EXE w programie Microsoft Visual Basic. Formularz1 jest tworzony domyślnie.
W menu Projektu kliknij Odwołania, a następnie zaznacz pole wyboru Microsoft XML 3.0.
Przeciągnij przycisk poleceń i upuść go na Form1.
Skopiuj i wklej następujący kod w procedurze zdarzeń kliknięcia 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/Title[contains(.,'ADO')]") MsgBox "Matching Nodes : " & nlist.length For Each node In nlist Debug.Print node.nodeName & " : " & node.Text Next
Powyższy kod ładuje kod XML z Books.xml do wystąpienia obiektu MSXML DOMDocument. Następnie uruchamia zapytanie XPath, które używa
contains XPath
funkcji do identyfikowania wszystkich tytułów książek zawierających słowo ADO. Na koniec pętla For wykonuje iterację po wybranych węzłach i wyświetla pasujące tytuły, które zostały zidentyfikowane przez uruchomienie zapytania XPath.Pierwszy parametr funkcji służy do określania węzła źródłowego
contains XPath
lub ciągu, względem którego ma zostać wykonane porównanie. Drugi parametr to ciąg, który określa wartość słowa lub ciągu do wyszukania w węźle źródłowym. Należy pamiętać, że ciąg lub słowo podane jako drugi parametr funkcji contains jest wrażliwy na wielkość liter.