use strict; use warnings; use XML::LibXML::Reader; my $XMLfile = 'myfile.xml'; print "Parsing...\n"; my $reader = 'XML::LibXML::Reader'->new(location => $XMLfile) or die print "Error"; my $entry_pattern = 'XML::LibXML::Pattern'->new('/martif/text/body/termEntry'); while ($reader->nextPatternMatch($entry_pattern)) { my $termEntry = $reader->copyCurrentNode(1); } print "Finished!\n";