in reply to Re: Why SOAP::Lite Method call returned partially XML formatted?
in thread Why SOAP::Lite Method call returned partially XML formatted?
#!/usr/bin/perl -- use strict; use warnings; my $response = <<'__RESPONSE__'; SOAP::Transport::HTTP::Client::send_receive: HTTP/1.1 200 OK Connection: close Date: Sun, 14 Sep 2008 03:11:44 GMT Server: Apache-Coyote/1.1 Content-Type: text/xml;charset=utf-8 Client-Date: Sun, 14 Sep 2008 03:11:39 GMT Client-Peer: 65.120.87.83:8180 Client-Response-Num: 1 <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envel +ope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http:// +www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <doSelectResponse xmlns="test"> <doSelectReturn xmlns=""><?xml version="1.0" encoding= +"UTF-8"?>
 <UDSObjectList>
 <UDSObject>
 <Handle>pcat:400004</Handle>
 <Attributes>
 <Attribute DataType="2002">
 <AttrName>sym</AttrName>
 <AttrValue>Hosted Solutions Support</AttrValue>
 </Attribute>
 <Attribute DataType="2002">
 <AttrName>description</AttrName>
 <AttrValue/>
 </Attribute>
 </Attributes>
 </UDSObject>
 </UDSObjectList>
 
 </doSelectReturn> </doSelectResponse> </soapenv:Body> </soapenv:Envelope> __RESPONSE__ my $response_xml = $1 if $response=~ /.+?(<\?xml.+Envelope>)\s*$/s; use XML::Simple; use Data::Dumper; $Data::Dumper::Indent=1; print Dumper( XMLin( $response_xml )), $/,'----',$/; use SOAP::Lite; my $d = SOAP::Custom::XML::Deserializer->deserialize( $response_xml ); print $d->valueof('/Envelope/Body'), $/,'----',$/; __END__ $VAR1 = { 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance', 'xmlns:xsd' => 'http://www.w3.org/2001/XMLSchema', 'soapenv:Body' => { 'doSelectResponse' => { 'xmlns' => 'test', 'doSelectReturn' => { 'xmlns' => '', 'content' => '<?xml version="1.0" encoding="UTF-8"?> <UDSObjectList> <UDSObject> <Handle>pcat:400004</Handle> <Attributes> <Attribute DataType="2002"> <AttrName>sym</AttrName> <AttrValue>Hosted Solutions Support</AttrValue> </Attribute> <Attribute DataType="2002"> <AttrName>description</AttrName> <AttrValue/> </Attribute> </Attributes> </UDSObject> </UDSObjectList> ' } } }, 'xmlns:soapenv' => 'http://schemas.xmlsoap.org/soap/envelope/' }; ---- <?xml version="1.0" encoding="UTF-8"?> <UDSObjectList> <UDSObject> <Handle>pcat:400004</Handle> <Attributes> <Attribute DataType="2002"> <AttrName>sym</AttrName> <AttrValue>Hosted Solutions Support</AttrValue> </Attribute> <Attribute DataType="2002"> <AttrName>description</AttrName> <AttrValue/> </Attribute> </Attributes> </UDSObject> </UDSObjectList> ----
|
---|