sub parseXMLfile { my $file = shift; my $xml; my %xml; # datei einlesen if ( dbLockOpen( IN, "<$file" ) ) { while () { $xml .= $_; } dbLockClose( IN, "$file" ); } else { return; } # xml-tags suchen while ( ( $xml =~ /(<([a-zA-Z0-9\-_]+)>)/ ) ) { my $tagName = $2; my $tag = $1; if ( ( $xml =~ /<($tagName)>((.|\n)*?)<\/$tagName>/i ) ) { # gefunden tag speichern my $tag = $1; # von $tag umschlossenen text suchen $xml =~ /(<$tag>((.|\n)*?)<\/$tag>)/i; # value speichern $value = $2; # gesamten gefundenen tag loeschen $xml =~ s/(<$tag>((.|\n)*?)<\/$tag>)//i; $xml{ lc($tag) } = $value; } else { $xml =~ s/$tag// ; # gefundenen anfangstag loeschen (da kein endtag vorhanden) } } return %xml; }