use strict; use warnings; use XML::XPath; use XML::XPath::XMLParser; my $xp = XML::XPath->new(filename => 'invoice.xml'); my $nodeset = $xp->find('//Invoice/InvoiceDetails/BaseItemDetails'); foreach my $node ($nodeset->get_nodelist) { my $description = $node->find('Description')->string_value; print " DES: $description\n"; }