| Processing XML with Perl | | Michel Rodriguez |
![]() Example: Data Base Integration | | ![]() Resources |
Example: Data Base Integration (cont'd)
the script:
#!/bin/perl -w
use strict;
use DBI;
use XML::Twig;
my $file= shift;
my $dbh= connect_to_db();
my $twig= new XML::Twig( TwigRoots => { book => \&book }, # only process include elements
TwigPrintOutsideRoots => 1,); # output the rest unchanged
$twig->parsefile( $file);
$dbh->disconnect();
exit;
# connect to the data base
sub connect_to_db
{ my $driver = "mysql";
my $dsn = "DBI:$driver:database=test;";
my $dbh = DBI->connect($dsn, 'test', '', {AutoCommit=>1});
my $drh = DBI->install_driver($driver);
return( $dbh);
}
sub book
{ my( $twig, $book)= @_;
my $field= $book->att( 'field');
my $code= $book->att( 'code');
my $query= "select $field from books where code='$code'";;
# prepare the select
my $sth= $dbh->prepare( $query);
$sth->execute();
my $row= $sth->fetchrow_arrayref(); # there will be only one row
print $row->[0]; # and one field in the row
}
|
![]() Example: Data Base Integration | | ![]() Resources |


