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"; } } #### EventId: 2015060400000157 No Packs EventId: 2015060400000164 No Packs EventId: 2015060200000562 PackId: b863a576-d8a3-4f5d-92a7-b66f876f6d7c PackId: No PackId PackId: a55164d0-faa7-4c7c-a688-ed36011add95 EventId: 2015060200000563 PackId: 760eb073-81f8-45cb-8553-484c5cecb740 PackId: No PackId PackId: a55164d0-faa7-4c7c-a688-ed36011add95