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

第2部 APIでのアプリケーション開発> 第10章 .NET APIのアプリケーション開発> 10.3 .NET APIの使用方法> 10.3.2 データの検索

10.3.2.5 レコードIDを利用してXML文書全体を取得する

XML文書の中から必要なXML文書を検索する場合、はじめからXML文書の全体を取得するのではなく、XML文書を識別するのに有効な部分情報を取得します。利用者は、これらの部分情報から詳細情報を取得したいXML文書を特定します。

XML文書の全体を取り出すには、部分情報を取り出したShunRecordオブジェクトをShunRecordCollectionオブジェクトに設定し、SearchByRecordIDメソッドを使用することで目的のXML文書の全体を取り出すことができます。

レコードIDを利用してXML文書全体を取得する場合の流れについて、以下の図に示します。

[図: レコードIDを利用してXML文書全体を取得する場合の流れ]

■C# .NETの記述例

ShunService service = new ShunService();
service.Connect();

ShunSearchRequirement req = new ShunSearchRequirement();                          
req.QueryExpression = "/document/base/prefecture == '大阪'";                      
req.ReturnExpression = "/document/base/name/text()";              

ShunResultSet rs = service.Search( req );                                         
Console.WriteLine("[ヒット件数] = " + rs.HitCount);                            
ShunRecordCollection recCol = new ShunRecordCollection();                       (1)
foreach ( ShunRecord record in rs.Records ) {                                   (2)
  if ( record.Data == "ホテル1" ) {                                             (2)
    recCol.Add( record );                                                       (2)
  }
}

rs = service.SearchByRecordID( recCol );                                        (3)
foreach ( ShunRecord record in rs.Records ) {                                   (4)
  Console.WriteLine( "[詳細] = " + record.Data );                               (4)
}

service.Disconnect();

■VB .NETの記述例

Dim service As New ShunService()
service.Connect()

Dim req As New ShunSearchRequirement()
req.QueryExpression = "/document/base/prefecture == '大阪'"
req.ReturnExpression = "/document/base/name/text()"

Dim rs As ShunResultSet = service.Search( req )
Console.WriteLine( "[ヒット件数] = {0}", rs.HitCount )
Dim recCol As New ShunRecordCollection()                                      (1)
For Each record As ShunRecord In rs.Records                                   (2)
  If record.Data = "ホテル1" Then                                             (2)
    recCol.Add( record )                                                      (2)
  End If
Next

rs = service.SearchByRecordID( recCol )                                       (3)
For Each record As ShunRecord In rs.Records                                   (4)
  Console.WriteLine( "[詳細] = {0}", record.Data)                             (4)
Next

service.Disconnect()

◆(1) ShunRecordCollectionオブジェクトの作成

ShunRecordCollectionオブジェクトを作成します。

◆(2) レコードIDを保持するShunRecordオブジェクトを設定

ShunRecordオブジェクトを、ShunRecordCollectionオブジェクトに設定します。

ShunRecordオブジェクトを設定するには、以下のメソッドを使用します。使用可能なメソッドについては以下の表を参照してください。

[表:ShunRecordオブジェクトを設定するメソッド一覧]

メソッド名またはプロパティ名

機能説明

Add(ShunRecord record)

ShunRecord を ShunRecordCollection の末尾に追加します。

AddRange(ShunRecord[] records)

ShunRecord 配列の要素を ShunRecordCollection の末尾にコピーします。

Insert(int index, ShunRecord record)

ShunRecordCollection 内の指定したインデックス位置に、 ShunRecord を挿入します。

Item[int index]

指定したインデックス位置のShunRecordを置き換えます。
C# .NETでは、このプロパティは ShunRecordCollectionクラスのインデクサになります。

◆(3) 検索の実行(ShunRecordCollectionオブジェクトの作成)

検索の実行はSearchByRecordIDメソッドを使用します。検索した結果としてShunRecordCollectionオブジェクトが作成されます。

◆(4) 検索した結果を取出し

ShunRecordCollectionオブジェクトから1件分のデータに相当するShunRecordオブジェクトを取り出し、ShunRecordオブジェクトからXML文書を取り出します。

XML文書を取り出すには、目的に応じて以下のプロパティまたはメソッドを使用します。使用可能なプロパティおよびメソッドについては以下の表を参照してください。

[表: XML文書を取り出す場合に使用可能なプロパティおよびメソッド]

プロパティ名またはメソッド名

機能説明

Dataプロパティ

XML文書をStringオブジェクトで取り出します。

GetDividedDataメソッド

XML文書をStringオブジェクトの2次元配列で取り出します。

GetStreamメソッド

XML文書をStreamオブジェクトで取り出します。

備考. GetDividedDataメソッドは、検索した結果をテキスト形式で取り出す場合に有効です。


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

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