use strict; use DBI; use XML::Generator::DBI; use XML::Handler::YAWriter; #### my $dbh = DBI->connect( qw(DBI:vendor:database:host user pass), {RaiseError=>1}, ); #### my $handler = XML::Handler::YAWriter->new(AsFile => 'foo.xml'); #### my $generator = XML::Generator::DBI->new( Handler => $handler, dbh => $dbh, Indent => 1, ); #### $generator->execute('select bar,baz from foo'); #### use strict; use DBI; use XML::Generator::DBI; use XML::XPath; use XML::XPath::Builder; #### my $dbh = DBI->connect( qw(DBI:vendor:database:host user pass), {RaiseError=>1}, ); #### my $handler = XML::XPath::Builder->new(); #### my $generator = XML::Generator::DBI->new( Handler => $handler, dbh => $dbh, ); #### my $xp = $generator->execute('select bar,baz from foo'); #### my $nodeset = $xp->find('/database/select/row/bar'); print $_->string_value, "\n" for $nodeset->get_nodelist; #### use strict; use DBI; use XML::Generator::DBI; use XML::Filter::SAX1toSAX2; use XML::Handler::HTMLWriter; my $dbh = DBI->connect( qw(DBI:vendor:database:host user pass), {RaiseError=>1}, ); #### my $handler = XML::Handler::HTMLWriter->new(); #### my $filter = XML::Filter::SAX1toSAX2->new(Handler => $handler); #### my $generator = XML::Generator::DBI->new( Handler => $filter, dbh => $dbh, RootElement => 'html', QueryElement => 'table', RowElement => 'tr', Indent => 1, ); $generator->execute('select foo as td,bar as td from baz'); #### use strict; use DBI; use XML::Generator::DBI; use XML::Filter::SAX1toSAX2; use XML::Filter::XSLT; use XML::SAX::Writer; my $dbh = DBI->connect( qw(DBI:vendor:database:host user pass), {RaiseError=>1}, ); #### my $writer = XML::SAX::Writer->new(); my $xsl_filt = XML::Filter::XSLT->new(Handler => $writer); my $sax_filt = XML::Filter::SAX1toSAX2->new(Handler => $xsl_filt); my $generator = XML::Generator::DBI->new( Handler => $sax_filt, dbh => $dbh, ); #### $xsl_filt->set_stylesheet_uri('foo.xsl'); $generator->execute('select bar,baz from foo'); #### use strict; use DBI; use CGI qw(:standard); use CGI::Carp qw(fatalsToBrowser); use XML::SAX::Writer; use XML::Generator::DBI; use XML::Filter::SAX1toSAX2; use XML::Filter::XSLT; #### my $style = 'dynamic.xsl'; my %field = ( name => 'artist.name as Artist', album => 'album.title as Album', title => 'song.title as Song', year => 'album.year as Year', ); #### print header, start_html, start_form, checkbox_group( -name => 'fields', -values => [ keys %field ], ), submit('go'), end_form, ; #### if (param('go')) { #### my @ok = map { $field{$_} } grep $field{$_}, param('fields'); #### die 'no valid fields selected' unless @ok; my $select = join(',', @ok); #### my $dbh = DBI->connect( qw(DBI:vendor:mp3:host user pass), {RaiseError=>1}, ); #### my $writer = XML::SAX::Writer->new(); my $xsl_filt = XML::Filter::XSLT->new(Handler => $writer); my $sax_filt = XML::Filter::SAX1toSAX2->new(Handler => $xsl_filt); my $generator = XML::Generator::DBI->new( Handler => $sax_filt, dbh => $dbh, ShowColumns => 1, ); #### die "could not open file $style" unless -r $style; $xsl_filt->set_stylesheet_uri($style); #### $generator->execute(" select $select from song inner join album on song.album_id=album.id inner join artist on album.artist_id=artist.id order by artist.name,album.year,album.title "); }