#!/usr/bin/perl -w use XML::Node; $xml_node = XML::Node->new(); $xml_node->register( "foo", 'char' => \$variable ); $xml_node->register( "foo>bar", "start" => sub { print "foo-bar[start](relative)\n" } ); $xml_node->register( "foo>bar", "end" => sub { print "foo-bar[end](relative)\n" } ); $xml_node->register( ">foo>bar", "end" => sub { print "foo-bar[end](absolute)\n" } ); $xml_node->register( ">foo:type", "attr" => sub { print "foo-type[attr](absolute)\n" } ); $xml_node->register( "foo:type", "attr" => sub { print "foo-type[attr](relative)\n" } ); my $file = "foo.xml"; print "Processing file [$file]...\n"; open(FOO, $file); $xml_node->parse(*FOO); close(FOO); print " has content: [$variable]\n";