ページの先頭行へ戻る
Big Data Integration ServerV1.4.0 検索編アプリケーション開発ガイド
FUJITSU Software

3.6.2 テキスト形式でデータを取り出す

リターン式にテキスト式を指定して、XML文書中の任意のノード配下またはその要素ノードの属性ノードのデータをテキスト形式で取り出すことができます。

リターン式に単一行関数指定を指定することもできます。単一行関数指定を指定すると、rlen関数やval関数の結果をテキスト形式で取り出すことができます。

単一行関数指定の詳細については、“B.2.4 単一行関数指定”を参照してください。


例として、検索式により下記の1件のXML文書がヒットしたものとして説明します。

<doc>
  <employee eno="19980120" position="general manager">
    <name>鈴木太郎</name>
    <namekana>すずきたろう</namekana>
    <department sno="1001">開発部</department>
    <phone>2201-1101</phone>
    <email>suzuki.taro@example.com</email>
  </employee>
  <basic date="2006年02月16日" expense="7200円">
  </basic>
  <detail>
    <destination area="神奈川県横浜市港北区">本社</destination>
    <purpose>プロジェクト定例会</purpose>
    <train>6600円</train>
    <taxi>600円</taxi>
    <hotel></hotel>
    <comment>特になし</comment>
  </detail>
  <report>次回までに販売実績チャートの作成/報告が必要</report>
</doc>

例1

出張レポート(report)を取り出します。

/doc/report/text()

結果

次回までに販売実績チャートの作成/報告が必要

例2

出張エリア(area)を取り出します。

/doc/detail/destination/@area

結果

神奈川県横浜市港北区

例3

出張費用(expense)から数値を取り出します。

val(/doc/basic/@expense)

結果

7200

リターン式に、リターン項目を複数指定することができます。各リターン項目は“,”で区切ります。複数のリターン項目を指定した場合は、結果として返すそれぞれのリターン項目の値は区切り文字で区切られます。

例4

従業員番号(eno)、従業員氏名(name)、出張日(date)、出張目的(purpose)を取り出します。

/doc/employee/@eno,/doc/employee/name/text(),/doc/basic/@date,/doc/detail/purpose/text()

結果:Java APIの場合

19980120,鈴木太郎,2006年02月16日,プロジェクト定例会

結果:C APIの場合

19980120 \1 鈴木太郎 \1 2006年02月16日 \1 プロジェクト定例会 \1

例5

従業員番号(eno)、部署番号(sno)および出張日(date)を取り出します。

/doc/employee/@eno,/doc/employee/department/@sno,/doc/basic/@date

結果:Java APIの場合

19980120,1001,2006年02月16日

結果:C APIの場合

19980120 \1 1001 \1 2006年02月16日 \1

参考

ソート式を指定している場合は、検索結果がソート式に従って並べ替えられて返却されます。


注意

リターン項目を複数指定する場合は、すべてのリターン項目は、テキスト式または単一行関数指定でなければなりません。パス式(XML形式での返却)と混在して指定することはできません。