in reply to
Creating nested elements in XML::Smart
A solution using XML::XSH2, a wrapper around XML::LibXML.
#!/usr/bin/perl
use warnings;
use strict;
use XML::XSH2;
package XML::XSH2::Map;
use constant {
TYPE => 0,
COMMENT => 1,
};
our %Shelves
= (
Puebla01 => [7480, 'ATM Core switch'],
Puebla02 => [7440, 'ATM access switch'],
);
package main;
xsh << '__XSH__';
create Shelf_Info ;
for my $shelf in { sort keys %Shelves } {
my $switch := insert element switch append /Shelf_Info ;
cd $switch ;
set @Name $shelf ;
set shelfType { $Shelves{$shelf}[TYPE] } ;
set commentText { $Shelves{$shelf}[COMMENT] } ;
}
save :f 'test.xml' ;
__XSH__