use strict; use warnings; use XML::Simple; use DATA::Dumper; #Variable my $counter = 0; my $countertrans = 0; my $file = (\*DATA); my $arrays = [qw/trans item status assignee/]; my $opt = XMLin($file, keyattr => 1, forcearray => $arrays); my $id = 'maxis'; my $lastid = 'legas'; foreach my $trans (@{$opt->{'trans'}}) { my $transs = $opt->{'trans'}[$countertrans]{'kool'}; if ($transs eq 'max') { foreach my $item (@{$trans->{'item'}}) { my $currentid = $opt->{'trans'}[0]{'item'}[0]{'id'}; $counter++; if ($lastid eq $currentid) { $opt->{'trans'}[$countertrans]{'item'}[$counter]{'id'} + = $id || die "Error!!"; $opt->{'trans'}[$countertrans]{'item'}[$counter]{'stat +us'} [0]= 'con' || die "Error!!"; $opt->{'trans'}[$countertrans]{'item'}[$counter]{'assi +gnee'}[0] = 'Jill' || die "Error"; print "My cuurent ID is $currentid, $item counter is $ +counter\n"; print "ID is $id\n"; print XMLout($opt); exit 1; } } } print "$trans"; $countertrans++ } print "Nothing"; __DATA__ <opt> <trans kool="max"> <item id="legas"> <status>contacted</status> <assignee>jack</assignee> </item> </trans> <trans kool ="kool"> <item id="gas"> <status>contacted</status> <assignee>jack</assignee> </item> </trans> </opt>
In reply to Add new elements with XML::Simple by Maxim
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |