ノード テストでは、場所ステップで選択されたノードの種類を指定します。 すべての軸 (child、 parent、 attribute、または self) には、主ノード タイプがあります。
attribute軸の場合、プリンシパル ノードの種類は <attribute> です。
parent、child、およびself軸の場合、プリンシパル ノードタイプは<要素>。
注
ワイルドカード ノード テスト * (たとえば、 child::*) はサポートされていません。
ノード テスト: 例 1
場所のパス child::Customer コンテキスト ノード <Customer> 要素の子を選択します。
この例では、 child が軸であり、 Customer がノード テストです。
child軸の主ノード タイプは <element> です。 したがって、<Customer> ノードが <element> ノードの場合、ノード テストは TRUE になります。 コンテキスト ノードに <Customer> 子がない場合は、空のノード セットが返されます。
ノード テスト: 例 2
場所のパス attribute::CustomerID コンテキスト ノードの CustomerID 属性を選択します。
この例では、 attribute は軸であり、 CustomerID はノード テストです。
attribute軸の主ノード タイプは <attribute> です。 したがって、 CustomerID が <attribute> ノードの場合、ノード テストは TRUE になります。 コンテキスト ノードに CustomerID がない場合は、空のノード セットが返されます。
注
XPath のこの実装では、場所ステップがスキーマで宣言されていない <element> または <attribute> 型を参照している場合、エラーが生成されます。 これは、空のノード セットを返す MSXML での XPath の実装とは異なります。
軸の省略構文
場所パスの次の省略構文がサポートされています。
attribute::を省略して@できます。場所のパス
Customer[@CustomerID="ALFKI"]は、child::Customer[attribute::CustomerID="ALFKI"]と同じです。child::は、場所ステップから省略できます。したがって、
childが既定の軸になります。 場所のパスCustomer/Orderは、child::Customer/child::Orderと同じです。self::node()は 1 つのピリオド (..) に省略でき、parent::node()は 2 つのピリオド (..) に省略できます。