この記事では、 starts-with()
XPath 関数の使用方法について説明します。
元の製品バージョン: Microsoft XML
元の KB 番号: 303516
まとめ
Microsoft XML (MSXML) ドキュメント オブジェクト モデル (DOM) を使用して XML ドキュメントを読み込んで解析し、値が特定の文字または文字シーケンスで始まる属性を持つ要素を識別する場合、これは一般的なプログラミング要件です。 この記事には、 starts-with
XML パス言語 (XPath) 文字列関数を使用してこの要件を実装する方法を示すコード サンプルが含まれています。
ステップ バイ ステップの例
メモ帳で、 Books.xmlという名前の新しい XML ドキュメントを作成し、次の 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>
Books.xmlをドライブ C のルート フォルダーに保存します。
Visual Basic で新しい Standard EXE プロジェクトを開きます。 Form1 は既定で作成されます。
Project メニューの References をクリックし、 Microsoft XML 3.0 チェック ボックスをオンにします。
Command ボタンをドラッグし、Form1 にドロップします。
次のコードをコピーして、
Click
ボタンの イベント プロシージャに貼り付けます。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
上記のコードは、
BOOKS.XML から MSXML オブジェクトのインスタンスに XML を読み込みます。 次に、 starts-with
XPath 関数を使用して、名が文字 M で始まるすべての作成者を識別する XPath クエリを実行します。最後に、For ループは選択したノードを反復処理し、一致する作成者要素の名を表示します。starts-with
XPath 関数の最初のパラメーターは、比較を実行するソース ノードまたは文字列を指定するために使用されます。 2 番目のパラメーターは、比較で使用される文字または文字シーケンスを指定するパターン文字列です。starts-with
関数の 2 番目のパラメーターとして指定されるパターン文字列は、大文字と小文字を区別して処理されます。