名前¶
HTMLtable - HTMLテーブルへのtieされたハッシュとDBI/SQLによるアクセス
概要¶
use AnyData;
my $table = adHash( 'HTMLtable', $filename );
while (my $row = each %$table) {
print $row->{name},"\n" if $row->{country} =~ /us|mx|ca/;
}
# ... その他のtieされたハッシュの操作
または
use DBI
my $dbh = DBI->connect('dbi:AnyData:');
$dbh->func('table1','HTMLtable', $filename,'ad_catalog');
my $hits = $dbh->selectall_arrayref( qq{
SELECT name FROM table1 WHERE country = 'us'
});
# ... その他のDBI/SQL操作
説明¶
このモジュールはHTMLテーブルに入っているデータを(AnyData.pmを使って)tieされたハッシュ として、あるいは(DBD::AnyData.pmを使って)DBI/SQLでアクセスできるデータベースとして 扱えるようにします。tieされたハッシュとDBIインターフェースは両方とも、HTMLテーブルを 読み込み、変更し、perlデータやローカルやリモート・ファイルからHTMLテーブルを 作ることができます。
このモジュールはCGI、HTML::Parser、HTML::TableExtractがインストールされていることを必要とします。
HTMLテーブルを読み込むとき、このモジュールは基本的にMatt Siskの素晴らしい HTML::TableExtractに、そのまま渡します。
adTie()、ad_catalog()の呼び出しで何もフラグが指定されなければ、TableExtractは depth=0、count=0で呼ばれます。言い換えれば、最初のテーブルの最初の行を見つけ、 それをテーブル全体のためのカラム名として扱います。もしadTie()、ad_catalog()の 呼び出しで'cols'(カラム名)のためのフラグが指定されるとカラム名のリストが TableExtractにheadersパラメータとして渡されます。もしユーザがheaders, depth, または countのためのフラグを指定すれば、それらは直接TableExtractに渡されます。
HTMLテーブルにエクスポートするとき、テーブル全体(table_flags)、カラム名の 入った先頭の行(top_row_flags)、そしてデータ行(data_row_flags)の属性を指定する ことができます。これのフラグはCGI.pmでのtableを作るメソッドの方法に従います。 例えば:
print adExport( $table, 'HTMLtable', {
table_flags => {Border=>3,bgColor=>'blue'};
top_row_flags => {bgColor=>'red'};
data_row_flags => {valign='top'};
});
table_flagsは何も指定されなければ、デフォルトでは{Border=>1,bgColor=>'white'}
になります。
top_row_flagsは何も指定されなければデフォルトでは{bgColor=>'#c0c0c0'} に
なります;
data_row_flagsは何も指定されなければ空になります。
言い換えれば、何もフラグが指定されなければ、テーブルは1のボーダーで
カラム・ヘッダがグレー、データ行は白になります。
注意:このモジュールは選択されたテーブルを除いて、HTMLファイルの中のものを
*何も*保存しません。そのため選択したテーブル以外のものがファイルに入っているのであれば、
adTie()あるいは$dbh->func(...,'ad_import')を使ってテーブルを読み込み、
adExport()あるいは$dbh->func(...,'ad_export')で別のファイルにテーブルを
出力したくなるでしょう。HTMLtableフォーマットを使っているときには、
これがデータへの変更を保存するための唯一の方法です。adTie()コマンドは
ファイルに*書き込みません*。
作者と著作権(=AUTHOR & COPYRIGHT)¶
copyright 2000, Jeff Zucker <[email protected]> all rights reserved
翻訳者¶
川合孝典([email protected])