=encoding euc-jp =head1 名前 HTMLtable - HTMLテーブルへのtieされたハッシュとDBI/SQLによるアクセス =head1 概要 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操作 =head1 説明 このモジュールは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()コマンドは ファイルに*書き込みません*。 =head1 作者と著作権(=AUTHOR & COPYRIGHT) copyright 2000, Jeff Zucker all rights reserved =head1 翻訳者 川合孝典(GCD00051@nifty.ne.jp)