#!/usr/bin/perl -w use XML::DOM; use strict; my ($file, @rubbish) = @ARGV; if ($#ARGV > 0 ){ die; } my $parser = new XML::DOM::Parser; my $doc = $parser->parsefile($file); my $root = $doc->getDocumentElement(); print "$root\n"; scanner($root); sub scanner { my ($rt) = @_; my $i=0; foreach my $track ($rt->getElementsByTagName('track')){ foreach my $ping ( $track->getChildNodes()){ foreach my $nde ( $ping->getChildNodes()) { #my $nde = $nee->getNextSibling; if ($nde->getNodeType == ELEMENT_NODE) { #$log->info( $i.$nde->getTagName()); print $i++, " ELEMENT ", $nde->getNodeValue(), "\n"; } scanner( $nde ); } } } } } my file looks sth like this: - abstract description/assertion - abstract command