xsi:type="foo" GeneralID="Random1" > #### #### Some Text A Some Text A YYYYYYYYYYY ZZZZZZZZZZZ YYYYYYYYYY22 ZZZZZZZZZZ22 YYYYYYYYY333 ZZZZZZZZZ333 #### use strict; use warnings; use feature qw( say ); use XML::LibXML; my $parser = XML::LibXML->new(); my $doc = $parser->parse_file('test.xml'); my $xpc = XML::LibXML::XPathContext->new($doc); $xpc->registerNs(theNS => 'http://www.wow.com/BlahML'); for my $important_node ( $xpc->findnodes('//theNS:MiddleTag/theNS:MyImportantNode') ) { say $important_node->getAttribute('GeneralID'); for my $cannot_get_a_node ( $xpc->findnodes('theNS:CannotGetTagA', $important_node) ) { say $cannot_get_a_node->textContent(); } }