| ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot |
MARC データの読み込みMARC データの読み込み –
File_MARC による MARC データの読み込み
概要File_MARC を使用すると、MARC 21 フォーマットの Machine Readable Cataloging (MARC) データを読み込むことができます。 File_MARC に同梱されている File_MARCXML を使用すると、 MARCXML 形式のデータを読み込むことができます。 さまざまなソースからの MARC データの読み込み入力元は、PHP のストリーム (File_MARC::SOURCE_FILE) あるいは文字列 (File_MARC::SOURCE_STRING) となります。 File_MARC および File_MARCXML のコンストラクタで、最初の引数としてソースの位置を、 二番目の引数としてソースの形式を指定します。 ファイルからの MARC 21 データの読み込み この例では、MARC21 データが journals.mrc という名前でディスク上に保存されているものとします。 MARCX21 データを読み込むには、File_MARC のコンストラクタをコールします。File_MARC に対して、 journals.mrc がファイル名なのか MARC データストリームを指しているのかを指定する必要はありません。 File_MARC のコンストラクタの第二引数は、 デフォルトで File_MARC::SOURCE_FILE となるからです。
<?php
文字列からの MARCXML データの読み込み この例では、あるウェブサービスから返された MARCXML データが PHP の変数 $xml_data に文字列で格納されているものとします。 MARCXML データを読み込むには、File_MARCXML のコンストラクタをコールします。$xml_data が文字列であることを File_MARCXML に教えるため、 コンストラクタの第二引数で File_MARC::SOURCE_STRING を指定します。
<?php
さまざまなソースからの MARC データの読み込みFile_MARC オブジェクトは、先頭部の情報の後に File_MARC_Record オブジェクトが順に並ぶ形式となります。 これが MARC レコードを表します。また、各レコードオブジェクトは、それぞれ File_MARC_Data_Field あるいは File_MARC_Control_Field オブジェクトの繰り返しになります。 これが MARC フィールドを表します。 File_MARC_Data_Field の中身は File_MARC_Subfield オブジェクトの繰り返しとなり、 これが MARC サブフィールドを表します。 レコードの要素の表示
<?php
つまり、File_MARC を使用すると、MARC レコードを読み込んで その中の特定のフィールドやサブフィールドの内容を取得することが簡単にできます。 File_MARC には、いちいち順次処理をしなくても 特定のフィールドを簡単に読み込めるようにするメソッドもあります。 getField は、 該当するフィールド名の最初のレコードを返します。また getFields は、 該当する名前のフィールドをすべて含む配列を返します。 これらのメソッドはどちらも、オプションで boolean 型のパラメータを指定できます。 これは、指定した文字列を Perl 互換の正規表現として扱うかどうかを指定するものです。 レコードからのすべての 650 フィールドの取得
<?php
フィールドおよびサブフィールドの順次処理File_MARC_Data_Field オブジェクトを foreach() で順に処理する際には、 指定したフィールドの MARC タグがキーとして返されます。 また、対応する値には、サブフィールド群が返されます。 同様に、File_MARC_Subfield オブジェクトを foreach() で順に処理する際には、 指定したサブフィールドのコードがキーとして返されます。 また、対応する値には、そのサブフィールドの値が返されます。 MARC レコード内のフィールドとサブフィールドの順次処理 この例では、650 フィールドを順に処理し、各フィールドの サブフィールドにある件名の見出しを表示します。
<?php
フィールドインジケータの取得データフィールドは File_MARC_Data_Field クラスで表されます。 このクラスの関数 getIndicator() を使用すると、 インジケータの値を取得することができます。 インジケータの取得 この例では、MARC レコードのタイトル (245) フィールドを取得し、 そのフィールドの二番目のインジケータを調べます。これによって、そのフィールドに 並べ替えの際に無視すべき非ファイリングインジケータがあるかどうかを判断します。
<?php
|
各種マニュアル:
PHPマニュアル |
PEARマニュアル |
Smarty(英語)マニュアル |
PHP-GTKマニュアル |
「MARC データの読み込み」をGoogle検索
|