0
私はデータベース形式のhtmlファイルに直接データをインポートするために使用しているフォールリングPerlスクリプトを持っています。このファイルは 'demo.htm'と呼ばれます。スクリプトは、私が必要としないものを取り除くという点でdatabse接続部分なしで動作します。しかし今、私はhtmlファイルを読み込み、データベースに入力しようとしていますが、これらのアダプテーションは機能しません。 db、ユーザー、パスワードはすべて「デモ」であり、SQL Server 2008 R2データベースを使用しています。Perlを使用してデータベースにアップロード
use warnings;
use strict;
use DBI;
use HTML::TreeBuilder;
open (FILE, "demo") || die "couldn't open the file!";
open (F1, ">demo.htm") || die "couldn't open the file!";
open (F2, ">demo2.csv") || die "couldn't open the file!";
# database name, user and password
my $data_source = q/dbi:ODBC:demo/;
my $user = q/demo/;
my $password = q/demo/;
# Connect to the data source and get a handle for that connection.
my $dbh = DBI->connect($data_source, $user, $password)
or die "Can't connect to $data_source: $DBI::errstr";
print F1 "Name\|Lives In\|Commented\n";
print F2 "Name\|Lives In\|Commented\text\n";
my $tree = HTML::TreeBuilder->new_from_content( do { local $/; <DATA> });
for ($tree->look_down('class' => 'postbody'))
{
my $location = $_->look_down('class' => 'posthilit')->as_trimmed_text;
my $comment = $_->look_down('class' => 'content')->as_trimmed_text;
my $name = $_->look_down('_tag' => 'h3')->as_text;
$name =~ s/^Re:\s*//; $name =~ s/\s*$location\s*$//;
print "Name: $name\nLives in: $location\nCommented: $comment\n"; }
# This query generates a result set with one record in it.
#my $sql = "SELECT 1 AS test_col";
my $sql = "insert into demo2 values \(Name, Lives In, Comeented, text)";
print $sql;
print "\n";
# Prepare the statement.
my $sth = $dbh->prepare($sql)
or die "Can't prepare statement: $DBI::errstr";
# Execute the statement.
$sth->execute();
}
print $b;
print " end\n";
# Disconnect the database from the database handle.
$dbh->disconnect;
ここで私が間違っていた箇所についての助けをいただければ幸いです。 htmlの例は次のとおりです。-
<div class="postbody"> <h3><a href "foo">Re: John Smith <span class="posthilit">England</span></a></h3> <div class="content">Is C# better than Visula Basic?</div> </div>
「これらの改変は機能していません」彼らがどのように機能していないのかを説明する方が有益でしょう。予期しない動作が見られますか?エラーメッセージはありますか? –