#!/usr/bin/perl # Module verwenden use XML::Simple; use Data::Dumper; # Objekt erstellen $xml = new XML::Simple; # XML-Datei einlesen #my $xml = XML::Simple->new( # RootName => undef, # RootName => 'test', # KeepRoot => 1, # ForceArray => 1, # ForceContent => 1, # ); @xmlkeys=(); @xmlvals=(); $data = $xml->XMLin('inifile.xml', KeepRoot => 1); &listhash ( $data, 0 ); XMLout($data, KeepRoot => 1, OutputFile => 'xinifile.xml'); print "#############################################\n"; $numkeys=$#xmlkeys; for ($keyindex=0 ; $keyindex<$numkeys ; $keyindex++) { print "$xmlkeys[$keyindex] $xmlvals[$keyindex]\n"; } print "HIER\n"; die; $data->{tableset}->{srcid}='changed by tkn'; #print "XXXX\n"; print $data->{tableset}->{srcid}; print "\n"; #print $data->{tableset}->{table}; %xx=$data->{tableset}->{table}; %xx=%{$data->{tableset}->{table}}; %xx=%{$data->{tableset}}; foreach $key( keys(%xx) ) { print "KEY $key\n"; $val= $xx{$key}; $deref_val=\$xx{$key}; print "DER $deref_val\n"; if ($deref_val =~ "^SCALAR") { # Skalar, also ausgeben print "SKVAL $val\n"; } if ($deref_val =~ "^REF") { # Referenz, also zerlegen if ($val =~ "^HASH") { print "Hash\n"; &listhash ( $val, 0 , '__BASE__' ); } } #$a=; } ############################################################################### sub listhash { # entfernt alle crs und lfs am zeilenende # dem zeichen an der position my %myhash = %{$_[0]}; my $mylevel = $_[1]; my $parentkey=$_[2]; my $mykey = ''; my $myval = ''; my $myderefval = ''; # print "HIER\n"; foreach $mykey( keys(%myhash) ) { # print "$mylevel KEY $mykey\n"; # print "$parentkey KEY $mykey\n"; $myval= $myhash{$mykey}; $myderefval=\$myhash{$mykey}; if ($myderefval =~ "^SCALAR") { # Skalar, also ausgeben # print "$mylevel SKVAL $myval\n"; # print "$parentkey".'**'."$mykey SKVAL $myval\n"; push (@xmlkeys, $parentkey.'**'.$mykey); push (@xmlvals, $myval ); if ($myval =~ "^SAPXML_DBSCHEMA" ) { # print "HIER\n"; # die; # $myhash{$mykey} = 'JOW_DBSCHEMA'; } } if ($myderefval =~ "^REF") { # Referenz, also zerlegen if ($myval =~ "^HASH") { # print "Hash\n"; &listhash ( $myval, $mylevel+1, $parentkey.'**'.$mykey ); } } } # return $mystring; } die; print "\n"; #print "XXXX\n"; $data->{tableset}->{srcid}='changed by tkn'; #print "YYYY\n"; #print $data->{tableset}->{srcid}; #print $data->{tables}->{tableset}->{srcid}; #print "XXXX\n"; #print $data->{tableset}->{kalahari}->{address}->[1];