foreach (@node) { &traverse($_); } sub traverse { my($node)= @_; if ($node->getType == XML_ELEMENT_NODE) { print "<", $node->getName, ">"; foreach my $child ($node->childNodes()) { &traverse($child); } print "getName, ">"; } elsif ($node->getType() == XML_TEXT_NODE) { print $node->getData; } }