I think what you want to use here is the
NoAttr option of
XML::Simple. This inhibits the generated XML to contain attributes and all hash key/values will be represented as nested elements instead.
use warnings;
use strict;
use XML::Simple;
my $hash = {
name => 'bob',
value1 => 'blah',
value2 => 'blah2',
};
my $xs = new XML::Simple;
my $xml = $xs->XMLout($hash,
NoAttr => 1,
RootName=>'newPhone',
);
print $xml;
__END__
<newPhone>
<name>bob</name>
<value1>blah</value1>
<value2>blah2</value2>
</newPhone>
The sad truth is that
XML::Simple options can somewhat paradoxically get really convoluted, but is is really useful for tasks of similar kind...