検索操作において、“H.1.1 検索条件に一致するXML文書の件数を求める”および“H.1.2 検索条件に一致するXML文書を指定した形式で取得する”といった操作を経て、絞り込んだ条件を基に、データすべてを取得することになります。
“H.1.2 検索条件に一致するXML文書を指定した形式で取得する”の操作により得られたホテル名を基に、該当するホテルのデータをすべて取得する例を用いて、VB .NETの使用例を示します。
「2006年7月18日に大阪で宿泊可能なホテルのうち、あるホテルの詳細情報を取得したい。」
年月日(2006年7月18日)および、場所(大阪)を条件に指定し、検索を実行します。また、ホテルに対応するレコードIDを用いて、詳細情報を取得します。
以下にVB .NETを使用したプログラミング例を示します。
Imports System Imports Fujitsu.Shunsaku Imports System.ComponentModel Class SampleSearchByRecordID Shared Public Function Main( ByVal args() As String ) As Integer Dim service As ShunService = Nothing Try '' ShunService の作成 service = new ShunService() '' ホスト名 ポート番号を指定して Shunsaku に接続 service.Host = "DirSrv1" service.Port = 23101 service.Connect() '' ShunSearchRequirement の作成 Dim req As ShunSearchRequirement = new ShunSearchRequirement() '' 各種検索条件の設定 req.QueryExpression = "/document {/base/prefecture == '大阪' AND /information/date == '2006年07月18日'}" req.ReturnExpression = "/document/base/name/text()" req.ReplyNumber = 1 req.RequestCount = 30 '' 検索条件を指定して検索を実行 Dim rs As ShunResultSet = service.Search( req ) '' 検索結果の表示 Console.WriteLine( "ヒット件数 = {0}", rs.HitCount ) '' 検索用 ShunRecordCollection を作成 Dim searchRecords As ShunRecordCollection = new ShunRecordCollection() '' 検索条件に該当するレコードを取得 For Each record As ShunRecord In rs.Records If record.Data = "ホテル1" searchRecords.Add( record ) End If Next '' 該当レコードの取得に成功している場合 詳細データを参照 If searchRecords.Count > 0 rs = service.SearchByRecordID( searchRecords ) For Each record As ShunRecord In rs.Records Console.WriteLine( "[詳細] = {0}", record.Data ) Next End If '' Shunsaku から切断 service.Disconnect() Catch e As ShunContinuousException '' ShunContinuousExceptionが発生した場合の処理を記述 Try If Not service Is Nothing And service.State = ShunConnectionState.Open Then service.Disconnect() End If Catch ex As ShunException Console.WriteLine( "エラーメッセージ : {0}", ex.Message ) End Try Console.WriteLine( "エラーメッセージ : {0}", e.Message ) Catch e As ShunConnectionTerminatedException '' ShunConnectionTerminatedExceptionが発生した場合の処理を記述 Console.WriteLine( "エラーメッセージ : {0}", e.Message ) End Try End Function End Class |
ヒット件数 = 3 [詳細] = <document> <base> <name>ホテル1</name> <prefecture>大阪</prefecture> <address>大阪府大阪市中央区</address> <detail>http://xxxxx.co.jp</detail> <price>9000</price> </base> <information> <date>2006年07月18日</date> </information> <note>バス付 トイレ付 地下鉄 △△駅徒歩02分</note> </document> |