# # implement better checks... # if (@{ $CHILD_ORDER }) { # if ($CHILD_ORDER->[$CHILD_INDEX] ne $localname) { # if (! $CHILD_ORDER->[++$CHILD_INDEX] # || $CHILD_ORDER->[$CHILD_INDEX] ne $localname) { # die "misplaced xml element " . $parser->recognized_string() # . " at line " # . $parser->current_line() # . " column " . $parser->current_column() , "\n" # , "Element order: " . join(',' , @{ $CHILD_ORDER }), "\n" # } # } # } # # if (%{ $CHILD_OCCURS }) { # die "too many occurances of $localname at line " # . $parser->current_line() # . " column " . $parser->current_column() , "\n" # if (not --$CHILD_OCCURS->{ $localname }->{ max }); # # # min must be checked in end_element ! # $CHILD_OCCURS->{ $localname }->{ min }-- # if ($CHILD_OCCURS->{ $localname }->{ min }); # }
SOAP::WSDL::Expat::MessageParser - Convert SOAP messages to custom object trees
my $parser = SOAP::WSDL::Expat::MessageParser->new({ class_resolver => 'My::Resolver' }); $parser->parse( $xml ); my $obj = $parser->get_data();
Real fast expat based SOAP message parser.
See SOAP::WSDL::Parser for details.
Sometimes there's unneccessary information transported in SOAP messages.
To skip XML nodes (including all child nodes), just edit the type map for the message and set the type map entry to '__SKIP__'.
Ignores all namespaces
Does not handle mixed content
The SOAP header is ignored
Replace the whitespace by @ for E-Mail Address.
Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
This module may be used under the same terms as perl itself.
$ID: $ $LastChangedDate: 2007-09-10 17:54:52 +0200 (Mo, 10 Sep 2007) $ $LastChangedRevision: 214 $ $LastChangedBy: kutterma $ $HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Expat/MessageSubParser.pm $
To install SOAP::WSDL, copy and paste the appropriate command in to your terminal.
cpanm
cpanm SOAP::WSDL
CPAN shell
perl -MCPAN -e shell install SOAP::WSDL
For more information on module installation, please visit the detailed CPAN module installation guide.