文字列による検索では、要素ノードの値、テキストノードの値または属性ノードの値が、文字列で指定された値と完全に一致する文書や大小関係にある文書を検索します。文字列による大小比較を行うことができるため、日付の検索などの数字と文字とが混在した値の検索に利用できます。
文字列の定義を以下の図に示します。
図B.11 文字列の定義
要素ノードの値、テキストノードの値または属性ノードの値と文字列が等しいかどうかを調べます。
/root/date == '2006年03月09日'
/root/dateが示す要素ノードの値が“2006年03月09日”という文字列と等しい場合に真となります。
ポイント
XML文書の任意の要素ノードが“長さ0バイトの空文字”である場合も、完全一致で検索することができます。
/doc/detail/taxi == ''
/doc/detail/taxiが示す要素ノードの値が空文字と等しい場合に真となります。
要素ノードの値、テキストノードの値または属性ノードの値と文字列を文字コード値で文字列の左から右の順に大小比較します。日付と時間は以下の形式である必要があります。
日付:’YYYY/MM/DD’
時間:’hh:mm:ss’
/root/date > '2006年03月09日'
/root/dateが示す要素ノードの値(文字コード値)と“2006年03月09日”の文字列の文字コード値を左から順に1文字ずつ比較し、/root/dateが示す要素ノードの文字コード値が大きい場合に真になります。
注意
文字列比較の場合は、XML文書中の検索対象とする要素ノードの値、テキストノードの値または属性ノードの値と、キーワードで指定する文字列の桁数をそろえておく必要があります。
以下の場合、検索対象の文書は条件式と一致しません。
条件式
/root/date <= '2006年03月09日'
検索対象の文書
<date>2006年3月1日</date>