by Hippo2000(2001/8/5)
日本語チョウ訳シリーズ AnyData::Format::HTMLtableモジュールなのです。
いつものことですが、わかりにくい(あやしい)説明は本物を見てください。(^^;原本の著作権はJeff Zucker氏がお持ちです(詳しくは著作権情報を見てください)。Jeff Zucker氏にはメールで了解をいただきました。
内容等が間違っていたら修正します。ご連絡ください。
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テーブルに入っているデータをtieされたハッス(AnyData.pmを使って)、あるいはDBI/SQLでアクセスできるデータベース(DBD::AnyData.pmを使って)扱えるようにします。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)の属性を指定することができます。例えば
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()を使ってテーブルを読み込み、adExport()で他のファイルに テーブルを出力したくなるでしょう。HTMLtableフォーマットを使っているとき には、これがデータへの変更を保存するための唯一の方法です。adTie()コマンド はファイルへ*書き込みません*。
(原文のまま)
copyright 2000, Jeff Zucker <jeff@vpservices.com> all rights reserved
ご意見、ご質問はこちらの掲示板で受け付けています。
またメールは河馬屋(Nifty)にお願いします。