#!/usr/local/bin/perl use FCGI; use CGI qw/:cgi/; use CGI::Carp qw/fatalsToBrowser/; use XML::LibXML; use XML::LibXSLT; use LWP::UserAgent; use URI; use constant PI_NODE_TYPE => 7; my $parser = new XML::LibXML; my $xslt = new XML::LibXSLT; my $agent = new LWP::UserAgent; while (FCGI::accept() >= 0) { my $query = new CGI; my $source_uri = new URI; $source_uri->path($query->path_info()); my $source = $parser->parse_file($source_uri); my $style_doc; foreach my $nod ( grep {$_->nodeType == PI_NODE_TYPE} $source->childNodes) { my $data = $nod->getData('href'); if ($data =~ /href=\"([^\"]*)\"/){ $style_doc = $parser->parse_file("./$1"); #$style_doc = $parser->parse_file("./xsl/$1"); last; } } my $stylesheet = $xslt->parse_stylesheet($style_doc); my $results = $stylesheet->transform($source); print $query->header( -type=>'text/html' , -charset=>'UTF-8'); print $stylesheet->output_string($results); }