use XML::LibXML; my $parser = XML::LibXML->new(); my $tree = $parser->parse_fh(*DATA); my $root = $tree->getDocumentElement; for my $node ( $root->findnodes("//Device/*/status/text()") ) { print $node->nodeValue, $/; } # print $root->serialize(1); __DATA__ 000290101935 Not Visible 0040 # ... #### for my $node ( $root->findnodes("//Device/*") ) { print $node->nodeName, $/; }