my $doc = XML::LibXML->load_xml( ... ); foreach my $parent ($doc->findnodes('//Parent')) { my @childElements = $parent->findnodes('*'); # ...do stuff with @childElements... } #### my $doc = XML::LibXML->load_xml( ... ); foreach my $parent ($doc->findnodes('//Parent')) { print "Found Parent node with the following XML content:"; print innerXML($parent); } sub innerXML { join '', map { $_->toString } shift->childNodes(); }