4. Xpath の型と演算子4.1 XPath の型XPath の主な基本構造は式です。式は評価され、オブジェクトを生成します。このオブジェクトは以下の 4つの基本型のいずれかになります。
number は普通の数字の他、Not-A-Number (NaN)、正と負それぞれの無限大、正と負それぞれのゼロ等の特殊な数字も使えます。 XPath では変数を使用することができ、例えば x という変数は $x と記述します。変数の値はオブジェクトであり、式の値として使用できるいずれかの型を持ちます。また、上で挙げた型でなくてもかまいません。 4.2 演算子XPath にも他のプログラミング言語と同様に演算子があります。XPath では以下のような演算子を使うことができます。
演算子に関して以下のような注意点があります。
例えば、1 + 2 * 3 では掛け算が優先されるため、足し算を優先させたい場合には (1 + 2) * 3 としますが、XPath でも同様に "(" と ")" を 使うことができます。 4.3 型変換論理演算子 or は boolean どうしの演算を行ないますが、例えばオペランドに boolean 以外を指定するとどうなるのでしょうか? その場合、オペランドが boolean に変換されてから、演算が行なわれます。これは他の演算子や次章から説明する関数についても同様のことがいえます。この節ではどのような変換が行われるのかみていくことにします。 4.3.1 node-set 型への変換『node-set に変換できる型のオブジェクトはない』と XPath 1.0 の仕様で定められているので、node-set が必要とされる場合に他の型を使用することはできません。 4.3.2 boolean 型への変換number 型からの変換は、ゼロであるか NaN である場合に false になり、それ以外の場合は true となります。 node-set 型からの変換は、その node-set が空である場合に false になり、それ以外の場合は true となります。 string 型からの変換は、その文字列の長さがゼロである場合に false になり、それ以外の場合は true となります。 4.3.3 number 型への変換string 型からの変換は、その文字列が表す数に変換され、それ以外の場合は NaN になります。なお、半角スペースは削除されてから変換が行われます。 boolean 型からの変換は、true ならば 1、false ならば 0 になります。 node-set 型からの変換は、一旦 string に変換されて、それから number に変換されることになっています。したがって、その node-set の中にあるノードの中でドキュメント順で 1番目にあるノードの文字列値の表す数、になります。 4.3.4 string 型への変換node-set 型からの変換は、ノード集合内のノードのうち、ドキュメント順で最初のノードの文字列値を返して、node-set 型を string 型に変換します。ノード集合が空の場合には、空の文字列に変換します。 number 型からの変換は、NaN の場合は NaN という文字列に、正の無限大の場合は Infinity という文字列に、負の無限大の場合は -Infinity という文字列に、正と負のゼロは 0 という文字列に、それ以外の場合はその数の文字列表現になります。 boolean 型からの変換は、true と false がそれぞれ、true と false という文字列に変換されます。 |
![]()
![]()
|