#!/usr/bin/perl use warnings; use strict; use feature qw{ say }; use XML::Twig; my $header; my $twig = 'XML::Twig'->new( twig_handlers => { h3 => sub { $header = $_->text; $_->purge; }, 'div[@class="event"]' => sub { say $header, "\t", $_->text; $_->purge; }, }, ); $twig->parsefile('file.xml');