in reply to Add new elements with XML::Simple
What you have is a pretty specific solution, and as such, is really only useful for you. But, you can indeed trim the code down. Here is one to do that:
use strict; use warnings; use XML::Simple; use Data::Dumper; my $data = XMLin(\*DATA, ForceArray => 1); for my $trans (@{ $data->{trans} }) { next unless $trans->{kool} eq 'max'; $trans->{item} = [$trans->{item}] unless ref $trans->{item} eq 'AR +RAY'; push @{ $trans->{item} }, { maxis => { assignee => ['jill'], status => ['con'] } }; } print XMLout($data, KeyAttr => 'id'); __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>
jeffa
L-LL-L--L-LL-L--L-LL-L-- -R--R-RR-R--R-RR-R--R-RR B--B--B--B--B--B--B--B-- H---H---H---H---H---H--- (the triplet paradiddle with high-hat)
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Add new elements with XML::Simple
by Maxim (Sexton) on Oct 13, 2004 at 21:26 UTC | |
by jeffa (Bishop) on Oct 14, 2004 at 15:00 UTC | |
by Maxim (Sexton) on Oct 14, 2004 at 21:41 UTC |