Re: [SOAP] SOAP client issue: < & > removed from XML payload
[email protected] (Stephen Gray)
| Newsgroups | php.soap |
|---|---|
| Message-ID | <[email protected]> |
Thanks for all the replies to this issue. It turned out that the problem was a bug in libxml. See http://bugs.php.net/bug.php?id=45996&edit=1 for more information. Regards, Steve David Zülke wrote: > That's the native PHP SOAP extension. http://php.net/soap > > No idea why you would use anything else. > > - David > > > > On 09.01.2009, at 08:11, Stephen Gray <[email protected]> wrote: > >> Hi David, >> >> Thanks. Can you tell me what ext/soap is? I haven't come across this >> before. Where do you get it. >> >> 0.12.0 is the version of the SOAP/Client PHP library which includes >> the SOAP_Client class. >> >> Thanks, >> Steve >> >> David Zülke wrote: >>> This sounds like some kind of IO filtering, firewall, proxy, whatever. >>> >>> Why don't you use ext/soap? What is this weird "PHP SOAP 0.12.0" stuff? >>> >>> - David >>> >>> >>> Am 07.01.2009 um 23:49 schrieb Stephen Gray: >>> >>>> Hi everyone, >>>> >>>> Thanks for the replies. However the problem is not that the browser >>>> doesn't display XML tags. If you try to display XML in a browser it >>>> will not display the tags and just display what is between the tags. >>>> This is not what is happening. What is happening is that the angle >>>> brackets are being removed by SOAP client, so >>>> <tag1><tag2>value</tag2></tag1> is converted to >>>> tag1tag2value/tag2/tag1. This is what you get even if you use >>>> var_dump() and write to disk. >>>> >>>> By the way I am using the latest version of PHP SOAP (0.12.0). >>>> >>>> Would be very grateful for any help. This is a huge problem for us >>>> as it has completely broken our application. >>>> >>>> Thanks, >>>> Steve >>>> >>>> >>>> David Zülke wrote: >>>>> Am 07.01.2009 um 07:01 schrieb Stephen Gray: >>>>>> I am sure this is a problem with the PHP client not the server, as >>>>>> when I replaced the PHP client with a Perl client the problem went >>>>>> away. >>>>> It's not, the problem is you. >>>>> You are echo'ing something that looks like HTML. Your browser does >>>>> not display the tags. >>>>> Use var_dump() instead of echo() or view the page source... >>>> >>>> ORIGINAL MESSAGE: >>>> Hi everyone, >>>> >>>> I've got a problem with a program using a PHP SOAP client that gets >>>> XML from a Perl SOAP server. The problem is that the angle brackets >>>> (< and >) are removed from the XML sent by the server by the SOAP >>>> client. I am sure this is a problem with the PHP client not the >>>> server, as when I replaced the PHP client with a Perl client the >>>> problem went away. >>>> >>>> The code for the PHP client is as follows: >>>> >>>> __START CODE__ >>>> <?php >>>> require_once 'SOAP/Client.php'; >>>> >>>> $endpoint = "http://localhost/cgi-bin/test.pl"; >>>> $soapoptions = array('namespace' => 'urn:Test', >>>> 'trace' => 1, >>>> 'timeout' => 600); >>>> $soapclient = new SOAP_Client($endpoint); >>>> >>>> $params = ""; >>>> $response = $soapclient->call('Main', $params, $soapoptions); >>>> ?> >>>> >>>> <html> >>>> <head> >>>> </head> >>>> <body> >>>> <p> >>>> <?php >>>> echo $response; >>>> ?> >>>> </p> >>>> </body> >>>> </html> >>>> __END CODE__ >>>> >>>> Just in case it's relevant the code for the Perl server is: >>>> >>>> __START CODE__ >>>> #!/usr/bin/perl -w >>>> use SOAP::Transport::HTTP; >>>> use Test; >>>> >>>> SOAP::Transport::HTTP::CGI >>>> -> dispatch_to('Test') >>>> -> handle; >>>> >>>> package Test; >>>> >>>> sub Main { >>>> return "<tag1><tag2>testing</tag2></tag1>"; >>>> } >>>> __END CODE__ >>>> >>>> Does anyone have any idea what might be the problem? Any help much >>>> appreciated. >>>> >>>> Thanks, >>>> Steve Gray >>>> >>>> -- >>>> PHP Soap Mailing List (http://www.php.net/) >>>> To unsubscribe, visit: http://www.php.net/unsub.php >>>> >>>> >>> >> >>