倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

XPath 1.0 のコア関数 (2) : ブール関数 (Boolean Functions)

XPath 1.0 のコア関数(記事一覧)。 今回は「ブール関数」。 XPath 1.0 仕様書「4.3 Boolean Functions」参照。

関数のシグニチャ

関数名 シグニチャ 返り値の型 説明
boolean() boolean(object) boolean XPath 1.0 でのデータ型のキャスト」参照
not() not(boolean) boolean 引数のブール値の否定を返します。
true() true() boolean true を返します。
false() false() boolean false を返します。
lang() lang(string) boolean コンテキスト・ノードと引数ので指定される言語が同じかどうかを返します。

boolean() 関数


以前の記事を参照。
シグニチャ

boolean(object) : boolean

not() 関数


引数のブール値の否定を返す。 つまり、引数が true なら false を、引数が false なら true を返す。
シグニチャ

not(boolean) : boolean

サンプルの XPath

not(true())

サンプルの評価結果

false : (ブール値)

true() 関数


常に true を返す。
シグニチャ

true() : boolean

サンプルの XPath

true()

サンプルの評価結果

true : (ブール値)

false() 関数


常に false を返す。
シグニチャ

false() : boolean

サンプルの XPath

false()

サンプルの評価結果

false : (ブール値)

lang() 関数


引数で指定される文字列が xml:lang() 属性で指定される言語と同じかどうかを返す。

  1. コンテキスト・ノードに xml:lang 属性がなければ、祖先をさかのぼってこの属性を探す。

  2. コンテキスト・ノードの祖先ノードにも xml:lang 属性がなければ false が返される。

  3. コンテキスト・ノードもしくはその祖先ノードに xml:lang 属性があれば、その文字列が(大文字小文字を無視して)

    • 引数の文字列と等しければ true を返す。

    • ハイフン (-) 以降のサフィックスを除いた部分と等しければ true を返す。

    • それ以外の場合は false を返す。



以下の5つの要素はどれも lang("en") が true を返す:

<para xml:lang="en"/>
<div xml:lang="en"><para/></div>
<para xml:lang="EN"/>
<para xml:lang="en-us"/>

シグニチャ

lang(string) : boolean

入門XML

入門XML