XPath 式
XML 文書は、1 つのルート・ノードとその下位の子ノードで構成されるツリーとして編成されます。 関数ライブラリーは、このツリー内をブラウズし、個々の XML ノードの場所を特定するために XPath 引数を使用します。
XPath 式の結果は、ノードまたは一連の要素、テキスト、属性ノードのいずれかになります。 例えば、/ABC/DEF という XPath 式では、XML 文書の ABC ルート・ノードの下のすべての DEF 子ノードが選択されます。 以下の表に、XPath 構文の最も一般的な機能を要約します。
| XPath のシンタックス | 使用法 |
|---|---|
| / | XPath 式の最初のフォワード・スラッシュは、ツリーのルートを指定します。 絶対パスは最初にスラッシュを付けて指定してください。 例えば、/ABC は、ルートに置かれている子エレメント ABC を指定します。 最初のスラッシュを省略すると、パスは相対パスになり、相対パスのコンテキストはデフォルトでルート要素になります。 ノードの子ノードを指定するには、XPath 式の中でパス分離文字として後続のスラッシュを使用します。 例えば、/ABC/DEF は、ABC 要素の子である DEF 要素を指定します (ABC 要素はルート要素の子です)。 |
| // | 2 つのフォワード・スラッシュは、現在のノードのすべての子孫ノードを指定します。 例えば、ABC//DEF は、ABC 要素の下のいずれかの DEF 要素とマッチングします。 |
| * | アスタリスクは、ワイルドカード文字であり、任意の子ノードに一致します。 例えば、/ABC/*/DEF は、ABC 要素の孫であるあらゆる DEF 要素とマッチングします。 |
| [] | 大括弧は、述部式 (2 項演算子の OR、AND、NOT など) を指定します。 例えば、/RESIDENTS [AGE=65 and NAME="Jane Doe"]/ADDRESS は、年齢が 65 歳で名前が Jane Doe のすべての住居者のアドレス要素を選択します。 また、大括弧はリスト内のインデックスを表します。 例えば、/POSTOFFICE/BOX[2] は、POSTOFFICE ルート要素の下の 2 番目のボックス番号要素を示します。 |
| ノード名 | nodename 変数は、指定されたノードのすべての子ノードを選択します。 例:
|
| . | 単一のピリオドは、現在のノードを選択します。 |
| .. | 2 つのピリオドは、現在のノードの親を選択します。 |
| @ | アットマークは、属性を選択します。 たとえば、//@lang は、lang という名前の属性をすべて選択します。 |
| func_ ' name |
XPath では、substring()、round()、not() などの組み込み関数がサポートされます。 また、ネーム・スペースを使用してユーザー定義関数を使用可能にすることができます。 |