Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re^2: Accessing Attributes in Web Servie message - Server Side

by gackles (Novice)
on Feb 18, 2016 at 16:22 UTC ( [id://1155562]=note: print w/replies, xml ) Need Help??


in reply to Re: Accessing Attributes in Web Servie message - Server Side
in thread Accessing Attributes in Web Servie message - Server Side

Here is my SOAP server:

#!/usr/bin/perl use strict; use SOAP::Transport::HTTP; use lib '/var/www/soap'; use vbsservice; my $server = SOAP::Transport::HTTP::CGI ->dispatch_to('sendMsg2ABC') ->handle; 1;

Here is the vbsservice module:

#!/usr/local/bin/perl package vbsservice; use Switch; use warnings; use Exporter; our @ISA = (Exporter); our @EXPORT = qw(sendMsg2ABC); sub sendMsg2ABC { my($class,$data)=@_; ...

$data is a hash ref that I've parsed all sorts of ways but I'm never able to get to the attributes of the incoming message. I can easily parse the key/values from any tag/element entries of the message but not the attributes. One thing I'm trying now is the dataof method but I haven't been able to get that to work. As a note, I cannot change the way the message is coming in. That's out of my control. Thank you again for any help.

Replies are listed 'Best First'.
Re^3: Accessing Attributes in Web Servie message - Server Side
by poj (Abbot) on Feb 18, 2016 at 16:34 UTC

    What is the structure of $data if you use Dumper

    use Data::Dumper; sub sendMsg2ABC { my($class,$data)=@_; print Dumper $data;
    poj

      Thank you. Even Dumper doesn't show me the attributes. I have Wireshark monitoring the incoming messages and there I do see the entire message coming in with the attributes. Here is the Dumper result:

      $VAR1 = { 'Request_Id' => '999999', 'Section' => [ { 'Entity' => [ '', '', '', '', '', '', '', '', '', '' ] }, { 'Entity' => [ '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '' ] }, { 'Entity' => [ '', '', '', '' ] } ], 'RequestType' => 'CHANGE', 'RequestStatus' => 'PENDING', 'VtacContactPhone' => '555-555-5555', 'Action' => 'APPROVE', 'VtacContactName' => 'CYNTHIA', 'NegotiatorPhone' => '555-555-5555', 'IssuedDate' => '12/10/2015 09:29:02 AM', 'NegotiatorName' => 'MICHELLE' };

        If you want to parse the XML then XML::Twig is one option

        #!perl use strict; use warnings; use XML::Twig; use Data::Dumper; my $xml = do{local $/;<DATA>}; my %data=(); my $t = XML::Twig->new( twig_handlers=> { Section => \&section }, ); $t->parse($xml); print Dumper \%data; sub section { my ($t,$e) = @_; my $type = $e->att('type'); for ($e->children('Entity')){ push @{$data{$type}},$_->atts; } }; __DATA__
        poj

      Try looking at HTML::Tree

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1155562]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (6)
As of 2024-04-24 13:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found