#!/usr/bin/perl -w
use strict;
use SOAP::Lite;
use SOAP::Data::Builder;
use Data::Dumper;
my $products = [
{productOffering => 'XPD-2333', action => 'add', setting => [
{settingName=>'Speed',settingValue=>'256'},
{settingName=>'Name',settingValue=>'test'},
]
},
];
my $builder = SOAP::Data::Builder->new();
foreach my $product (@{$products}) {
my $this_product = $builder->add_elem(name=>'Product');
warn "this product : $this_product\n";
foreach (qw/productOffering action/) {
next unless exists $product->{$_};
$builder->add_elem(name=>$_, value=>$product->{$_}, parent=>$this_product);
}
my @settings = ();
foreach my $setting (@{$product->{setting}}) {
my $this_setting = $this_product->add_elem(name=>'setting');
warn "this_setting : $this_setting\n";
foreach (qw/settingName settingValue/) {
$this_setting->add_elem(name=>$_, value=>$setting->{$_},);
}
}
}
my $data = SOAP::Data->name('soap:env' => \SOAP::Data->value($builder->to_soap_data ));
my $serialized_xml = SOAP::Serializer->autotype(0)->serialize( $data );
print $serialized_xml;
print Dumper($soap_data_builder->elems());
syntax highlighted by Code2HTML, v. 0.9.1