AnyData::Format::HTMLtableモジュール (AnyData Ver. 0.05) (日本語チョウ訳)

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()コマンド
はファイルへ*書き込みません*。

作者と著作権(AUTHOR & COPYRIGHT)

(原文のまま)

copyright 2000, Jeff Zucker <jeff@vpservices.com> all rights reserved


ご意見、ご質問はこちらの掲示板で受け付けています。
またメールは河馬屋(Nifty)にお願いします。