use strict; use warnings; use XML::LibXML qw( ); my $xml = <<'__EOI__'; 101010101 success 11 1111222233334444555 7.00 X111111111111111 22222222 33333333 Transfer Completed __EOI__ my $root = XML::LibXML->new->parse_string($xml)->documentElement; my %data = map { $_->nodeName => $_->textContent } $root->findnodes('/*/*');