starts-with() XPath 関数を使用する
この記事では、XPath 関数の starts-with()
使用方法について説明します。
元の製品バージョン: Microsoft XML
元の KB 番号: 303516
概要
これは、Microsoft XML (MSXML) ドキュメント オブジェクト モデル (DOM) を使用して XML ドキュメントを読み込んで解析し、値が特定の文字または文字のシーケンスで始まる属性を持つ要素や要素を識別する場合に、一般的なプログラミング要件です。 この記事には、XML パス言語 (XPath) 文字列関数を使用してこの要件を starts-with
実装する方法を示すコード サンプルが含まれています。
ステップ バイ ステップの例
メモ帳で、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 は既定で作成されます。
[プロジェクト] メニューの [参照] をクリックし、[Microsoft XML 3.0 チェック] ボックスを選択します。
[コマンド] ボタンをドラッグし、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
DOMDocument
オブジェクトのインスタンスに XML を読み込みます。 次に、XPath 関数を使用starts-with
して、名が文字 M で始まるすべての作成者を識別する XPath クエリを実行します。最後に、For ループは選択したノードを反復処理し、一致する作成者要素の名を表示します。XPath 関数の
starts-with
最初のパラメーターを使用して、比較を実行するソース ノードまたは文字列を指定します。 2 番目のパラメーターは、比較で使用する文字または文字シーケンスを指定するパターン文字列です。 関数の 2 番目のパラメーターstarts-with
として指定されるパターン文字列では、大文字と小文字が区別されます。