my $text = q| -1 ListPerformances ...etc |; my $doc = XML::LibXML->load_xml(string => $text); my $xc = XML::LibXML::XPathContext->new( $doc->documentElement() ); $xc->registerNs( pfx => 'http://xmlns.sony.net/d-cinema/tms-api/v1' ); my @events = $xc->findnodes('//pfx:EventInfo'); for my $event (@events) { my $id = $xc->findvalue('pfx:EventId', $event); print "EventId: $id\n"; my @packs = $xc->findnodes('pfx:PreshowPackList/pfx:PreshowPack', $event); if ( not @packs ) { print "No Packs\n"; next; } for my $pack (@packs) { my $pack_id = $xc->findvalue('pfx:PackId', $pack) || "No PackId"; print "PackId: $pack_id\n"; } }