#!/opt/perl/bin/perl -w use strict; use XML::LibXML; sub show { my @nodes = @_; foreach my $node (@nodes) { print "<" . $node->nodeName . ">"; $node->nodeName eq "text" and print $node->data; show($node->childNodes); } } scalar @ARGV or die "usage: shownodes xmlfile\n"; my $parser = XML::LibXML->new(); my $tree = $parser->parse_file(shift @ARGV); my $root = $tree->getDocumentElement; show($root->childNodes); .