Shunsakuに格納しているXML文書から条件を満たすXML文書を検索するには、検索式を指定します。
複数の条件を論理演算子で結合して検索することができます。論理演算子を指定することで、条件1と条件2の両方を満たすXML文書を検索したり、条件1または条件2を満たすXML文書を検索したりすることができます。
論理演算子には、“AND”および“OR”があります。“AND”と“OR”を検索式に指定した場合は、“AND”が“OR”より優先して判定されます。
検索式および論理演算子の詳細については、“B.3 検索式”を参照してください。
例として以下の文書があるものとします。
文書A
<doc> : <basic date="2006年01月30日" expense="15700円"> : </basic> <detail> <destination area="東京都千代田区">東京営業所</destination> <purpose>Interstage Shunsaku販売推進会議出席</purpose> : </detail> : </doc>
文書B
<doc> : <basic date="2006年02月16日" expense="16020円"> : </basic> <detail> <destination area="大阪府大阪市阿倍野区">大阪支店</destination> <purpose>V7.0L10導入報告</purpose> : </detail> : </doc>
文書C
<doc> : <basic date="2006年03月02日" expense="2400円"> : </basic> <detail> <destination area="神奈川県横浜市港北区">本社</destination> <purpose>Interstage定例会議</purpose> : </detail> : </doc>
出張目的(purpose)に“Interstage”または“Shunsaku”という文字列を含む文書を検索します。
/doc/detail/purpose = 'Interstage' OR /doc/detail/purpose = 'Shunsaku'
結果:文書Aと文書Cが返却されます。
出張エリア(area)に“東京都”または“神奈川県”という文字列を含む文書を検索します。
/doc/detail/destination/@area = '東京都' OR /doc/detail/destination/@area = '神奈川県'
結果:文書Aと文書Cが返却されます。
出張費用(expense)が10000円以上で、かつ、出張エリア(area)に“大阪市”を含む文書を検索します。
/doc/basic/@expense >= 10000 AND /doc/detail/destination/@area = '大阪市'
結果:文書Bが返却されます。
参考
“OR”を優先させたい場合は、条件式を括弧でくくります。
出張先(destination)が“本社”または“大阪支店”で、かつ、出張日(date)に“2006年02月”を含む文書を検索します。
(/doc/detail/destination == '本社' OR /doc/detail/destination == '大阪支店') AND /doc/basic/@date = '2006年02月'
結果:文書Bが返却されます。
参考
パス式で指定した要素ノードに閉じた範囲で、条件を指定する場合はフィルタ式を指定します。
フィルタ式の詳細については、“B.3.7 フィルタ式”を参照してください。