The double quotes will stringify the array which completely removes the array structure. Also, I just noticed that you have a problem in the way your construct @waypoints:'Waypoint' => [ "@waypoints"],
You don't want double-quotes (or need single quotes) here either:push(@waypoints, "{'Longitude' => '$point[0]', 'Latitu +de' => '$point[1]', 'SequenceNumber' => '$count'}");
Combined with the not using stringification should get you pretty close to what you want.push(@waypoints, { Longitude => $point[0], Latitude => $point[1], SequenceNumber => $count } );
Update: Here's some code that seems to produce what you want:
use strict; use warnings; use XML::Simple; my $xml = new XML::Simple ( RootName => 'Task', XMLDecl => '<?xml version="1.0" encoding="UTF-8"?>', ); my @waypoints = ( { Long => 1, Lat => 2, SeqNo => 1 }, { Long => 3, Lat => 4, SeqNo => 2 }, ); my $waydata = { 'xmlns' => "http://Task.CUIntegration.com", 'xmlns:xsi' => "http://www.w3.org/2001/XMLSchema-instance", 'xsi:schemaLocation' => "http://Task.CUIntegration.com Task.xsd", 'ID' => ['ID'], 'Type' => ['Loop'], 'Destination' => ['Velocity'], 'Waypoint' => [ @waypoints ], }; print $xml->XMLout($waydata);
In reply to Re: XML problems
by pc88mxer
in thread XML problems
by deadpickle
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |