#!/usr/bin/perl -w use lib "/home/wxwindows/perllibs/local/share/perl/5.6.1/"; use lib "/home/wxwindows/perllibs/local/lib/perl/5.6.1/"; require "./wxkeywords.pl"; my $rawquery = $ENV{"QUERY_STRING"}; my $class; my $base = "http://www.wxwindows.org/manuals/2.4.0/"; print "Content-type: text/html\n\n"; if ($rawquery =~ /name=([a-zA-Z-_]+)/) { $class = $1; } else { print "No valid query.\n"; die; } use XML::LibXML::XPathContext; use XML::LibXML; use XML::XPath::XMLParser; use XML::LibXSLT; #my $doc = XML::GDOME->createDocFromURI("classes.xml", GDOME_LOAD_PARSING|GDOME_LOAD_SUBSTITUTE_ENTITIES); #my @nodes = $doc->findnodes("/classes/class[\@name=\"$class\"]"); #foreach my $node (@nodes) my $parser = XML::LibXML->new(); my $classxml = $parser->parse_file("classes.xml"); my $xslt = XML::LibXSLT->new(); my $style_doc = $parser->parse_file('class.xsl'); my $stylesheet = $xslt->parse_stylesheet($style_doc); my $xc = XML::LibXML::XPathContext->new($classxml); my %officialurl=wxclasslist(); my $nodelist = $xc->find("/classes/class[\@name=\"$class\"]"); foreach my $node ($nodelist->get_nodelist) { print "Printing node"; if (defined $officialurl{lc($class)}) { my $child; my $elem = XML::LibXML::Element->new("officiallink"); $elem->setAttribute ("href", "$base/$officialurl{lc($class)}"); $node->appendChild($elem); } #print XML::XPath::XMLParser::as_string($node); #$doc->importNode ($node); #my $doc = XML::LibXML::Document->createDocument(); #$doc->setDocumentElement ($node); print $node->toString(); my $results = $stylesheet->transform($node); print $stylesheet->output_string($results); }