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 データの読み込み

File_MARC オブジェクトは、先頭部の情報の後に File_MARC_Record オブジェクトが順に並ぶ形式となります。 これが MARC レコードを表します。また、各レコードオブジェクトは、それぞれ File_MARC_Data_Field あるいは File_MARC_Control_Field オブジェクトの繰り返しになります。 これが MARC フィールドを表します。 File_MARC_Data_Field の中身は File_MARC_Subfield オブジェクトの繰り返しとなり、 これが MARC サブフィールドを表します。

つまり、File_MARC を使用すると、MARC レコードを読み込んで その中の特定のフィールドやサブフィールドの内容を取得することが簡単にできます。 File_MARC には、いちいち順次処理をしなくても 特定のフィールドを簡単に読み込めるようにするメソッドもあります。 getField は、 該当するフィールド名の最初のレコードを返します。また getFields は、 該当する名前のフィールドをすべて含む配列を返します。 これらのメソッドはどちらも、オプションで boolean 型のパラメータを指定できます。 これは、指定した文字列を Perl 互換の正規表現として扱うかどうかを指定するものです。

フィールドおよびサブフィールドの順次処理

File_MARC_Data_Field オブジェクトを foreach() で順に処理する際には、 指定したフィールドの MARC タグがキーとして返されます。 また、対応する値には、サブフィールド群が返されます。

同様に、File_MARC_Subfield オブジェクトを foreach() で順に処理する際には、 指定したサブフィールドのコードがキーとして返されます。 また、対応する値には、そのサブフィールドの値が返されます。

フィールドインジケータの取得

データフィールドは File_MARC_Data_Field クラスで表されます。 このクラスの関数 getIndicator() を使用すると、 インジケータの値を取得することができます。