Interstage Shunsaku Data Manager アプリケーション開発ガイド - Microsoft(R) Windows(R) 2000/ Microsoft(R) Windows Server(TM) 2003 - - UNIX共通 - |
目次
索引
![]() ![]() |
付録B 検索式、リターン式およびソート式の書式 | > B.3 検索式 |
フィルタ式は、パス式で指定した要素ノードに閉じた範囲で、条件を指定する場合に使用します。
フィルタ式の定義を以下の図に示します。
例
以下にフィルタ式を含んだ検索式の例を示します。文書A
<root> <company> <employee position="manager"> <name>tanaka</name> <id>1000</id> <skill kind="0017">2005.1</skill> <skill kind="0023">2002.3</skill> <skill kind="0009">1998.8</skill> </employee> </company> <company> <employee position="chief"> <name>suzuki</name> <id>2000</id> <skill kind="0033">2004.7</skill> <skill kind="0012">2001.9</skill> </employee> </company> </root>
文書B
<root> <company> <employee position="chief"> <name>tanaka</name> <id>2000</id> <skill kind="0002">2003.2</skill> <skill kind="0010">2002.3</skill> </employee> </company> <company> <employee position="manager"> <name>suzuki</name> <id>3000</id> <skill kind="0001">1995.2</skill> </employee> </company> </root>検索式1
/root/company/employee{/name = '^tanaka' AND /id = '1000'}結果
文書Aは条件に該当し、文書Bは条件に該当しません。
“/root/company/employee”で1つの区切りと考えます。文書Aの場合は、中括弧の条件に該当するデータが存在します。文書Bの場合は、中括弧の条件(/name = '^tanaka' AND /id = '1000')に該当するデータが存在しません。
検索式2
/root/company/employee{/@position = '^manager' AND /id = '3000'} |
結果
文書Bは条件に該当し、文書Aは条件に該当しません。 |
検索式3
/root/company/employee/skill{/@kind = '^0001' AND /text() = '1995.2'} |
結果
文書Bは条件に該当し、文書Aは条件に該当しません。 |
例
以下に、フィルタ式内にテキスト式を含んだ検索式の例を示します。
/root/company/employee/skill{/text() = '1995.2' AND /@kind = '0001'}
“/root/company/employee/skill”が示す要素ノードのテキストノードの値が“1995.2”であり、かつ、属性ノードの値が“0001”である場合に真となります。
例
以下の場合、パス式の最後のパス要素に“*”を指定しているので、エラーになります。
/root//company/*{/name = '^tanaka' AND /id = '1000'}
目次
索引
![]() ![]() |