The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

=head1 NAME

ws-xsl : transform a document given an XSL stylesheet.

=head1 DESCRIPTION

This script uses the WebSource:;Parser module. This allows to 
apply xsl stylesheets to HTML documents (hopefully even badly formatted ones).

=cut

use WebSource::Parser;
use XML::LibXSLT;
use Getopt::Mixed;

Getopt::Mixed::getOptions(
  "s=s stylesheet>s",
);

$opt_s or die "No stylesheet given\n";

my $parser = WebSource::Parser->new;
my $xsldoc = $parser->parse_file($opt_s);
my $xsltparser = XML::LibXSLT->new;
my $xsl = $xsltparser->parse_stylesheet($xsldoc);

foreach my $file (@ARGV) {
  my $doc = $parser->parse_html_file($file);
  my $results =  $xsl->transform($doc);
  print $xsl->output_string($results);
}