use XML::SAX::Machines 0.31;
use XML::SAX::Machines qw( Pipeline ByRecord Tap );
use XML::Filter::XSLT;
my $f = XML::Filter::XSLT->new( Source => { ByteStream => \*DATA } );
Pipeline(
ByRecord( $f ),
\*STDOUT
)->parse_uri( $ARGV[0] );
## "in-place upgrades" until some new releases hit CPAN ;)
use IO::Handle; ## XML::LibXML needs this to read from filehandles...
sub XML::Filter::XSLT::LibXSLT::set_handler {
my $self = shift;
$self->{Handler} = shift;
$self->{Parser}->set_handler( $self->{Handler} )
if $self->{Parser};
}
__END__
<xslt:transform version="1.0"
xmlns:xslt="http://www.w3.org/1999/XSL/Transform"
>
<xslt:template match="state">
<xslt:copy-of select="."/>
</xslt:template>
</xslt:transform>