#!/usr/bin/perl -T use strict; use warnings; use CGI qw(:standard); use LWP::Simple qw(get); use HTML::Entities; use XML::LibXML; use XML::LibXSLT; print header, start_html, start_form, textfield('node_id'), submit('ID'), end_form, end_html, ; my $id = param('node_id'); print hr, node2html($id); sub node2html { my $id = shift || 181206; return qq(bad id "$id"\n) unless $id =~ /^\d+$/; my $xml = get "http://perlmonks.org/index.pl?node_id=$id&displaytype=xml"; my $xslt = do {local $/; }; my $xml_parser = XML::LibXML->new(); my $xslt_parser = XML::LibXSLT->new(); my $doc = $xml_parser->parse_string($xml); my $style = $xml_parser->parse_string($xslt); my $stylesheet = $xslt_parser->parse_stylesheet($style); my $results = $stylesheet->transform($doc); return decode_entities($stylesheet->output_string($results)); } __DATA__ ()
by