パターン

パターンは、ノードに対する一連の条件に基づいてノード セットを返す一種の式です。 条件を満たすノードはパターンにマッチすると言います。 パターンの構文は、式の構文のサブセットです。 特に、特定の制限を満たすロケーション パスはパターンとして使用することができます。 パターンでもある式は、常にノードセット タイプのオブジェクトに評価されます。 可能なコンテキストに対してパターンを式として評価した結果、ノードがその一員となる場合に、ノードはパターンにマッチする言います。ここで、可能なコンテキストとは、そのコンテキスト ノードがマッチの対象となっているノードであるかその祖先の 1 つであるコンテキストです。

次の表にパターンの例を列挙します。

パターン 一致する文字列

Para

任意の para 要素。

*

任意の要素

chapter|appendix

任意の chapter 要素および appendix 要素

olist/item

olist の親を持つ任意の item 要素

appendix//para

appendix という祖先を持つ任意の para 要素

/

ルート ノード

text()

任意のテキスト ノード

processing-instruction()

任意の処理命令

node()

属性ノードとルート ノード以外の任意のノード

id("W11")

一意の ID W11 を持つ要素

para[1]

親の最初の para 子要素である任意の para 要素

*[position()=1 and self::para]

親の最初の子要素である任意の para 要素

para[last()=1]

親の唯一の para 子要素である para 要素

items/item[position()>1]

items という親を持ち、親の最初の item 子要素でない任意の item 要素

item[position() mod 2 = 1]

親の奇数番目の item 子要素である任意の item 要素

div[@class="appendix"]//p

class 属性の値が appendix である div 祖先要素を持つ任意の p 要素

@class

任意の class 属性 (class 属性を持つ任意の要素ではなく)

@*

任意の属性

参照

リファレンス

ロケーション パス