Interstage Shunsaku Data Manager アプリケーション開発ガイド - Microsoft(R) Windows(R) 2000/ Microsoft(R) Windows Server(TM) 2003 - - UNIX共通 -
目次 索引 前ページ次ページ

付録B 検索式、リターン式およびソート式の書式> B.3 検索式

B.3.8 フィルタ式

フィルタ式は、パス式で指定した要素ノードに閉じた範囲で、条件を指定する場合に使用します。

フィルタ式の定義を以下の図に示します。

[図:フィルタ式の定義]

以下にフィルタ式を含んだ検索式の例を示します。

文書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は条件に該当しません。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2006