#!/usr/bin/perl use strict; use warnings; use XML::LibXML; my $file = shift || die "usage $0 xmlfile"; my $parser = XML::LibXML->new(); my $doc = $parser->parse_file( $file ); my $root = $doc->getDocumentElement; my @modules = $root->findnodes( '/Product/Module' ); foreach my $module ( @modules ) { my $name = $module->findvalue( '@name' ); print "Module Name: $name\n"; my @dirs = $module->findnodes( 'SourceDir/@name' ); foreach my $dir ( @dirs ) { print "\t", $dir->value, "\n"; } print "\n"; } #### Module Name: nw /testnw/nwtool Module Name: hw /prod/hw /test/hw