use SOAP::Lite; use Data::Dumper; use strict; use warnings; my $data = < EOL my $service = new SOAP::Lite uri => 'http://test/', proxy => 'http://simonp.intranet-dev:8080/servlet/middleware', soapversion => 1.2, xmlschema => '2001' ; my $fragment = SOAP::Data->type(xml => $data); my $serializer = $service->serializer(); my $env = $serializer->envelope(freeform => $fragment); my $response = $service->call($env); my $body = $response->dataof('//Body/ar/al/ai'); # should give access to body my $attr = $body->attr(); print "Type: ", $attr->{'type'},"\n"; print "ID: ", $attr->{'id'},"\n"; my $summary = $response->dataof('//Body/ar/al/ai/summary'); $attr = $summary->attr(); print "Summary: ", $attr->{'data'},"\n"; my $title = $response->dataof('//Body/ar/al/ai/title'); $attr = $title->attr(); print "Title: ", $attr->{'data'},"\n"; my $anchor = $response->dataof('//Body/ar/al/ai/anchor'); $attr = $anchor->attr(); print "Link: ", $attr->{'data'},"\n";