use warnings; use strict; use XML::LibXML; my $doc = XML::LibXML->load_xml(IO=>*DATA); for my $product ($doc->findnodes('//product')) { my $item = $product->findvalue('./item_number'); my @colors = map {$_->textContent} $product->findnodes('.//color_swatch'); print "ITEM NUMBER: $item COLORS: @colors\n"; } __DATA__ QWZ5671 Red Burgundy