首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP NuSOAP响应

PHP NuSOAP响应
EN

Stack Overflow用户
提问于 2014-05-26 09:36:46
回答 2查看 2.9K关注 0票数 0

nusoap服务器的响应是这样的正常吗?

如果不是,我如何修复或删除&lt&gt,并使其成为<>

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:get_stocksResponse xmlns:ns1="VSR"><return xsi:type="xsd:string">&lt;facilitator&gt;
&lt;stock_response&gt;
    &lt;product&gt;
      &lt;productid&gt;1072722&lt;/productid&gt;
      &lt;voorraad&gt;888040&lt;/voorraad&gt;
    &lt;/product&gt;
    &lt;product&gt;
      &lt;productid&gt;1072724&lt;/productid&gt;
      &lt;voorraad&gt;888603&lt;/voorraad&gt;
    &lt;/product&gt;
&lt;/stock_response&gt;
&lt;/facilitator&gt;
</return></ns1:get_stocksResponse></SOAP-ENV:Body></SOAP-ENV:Envelope></code>

这是我在服务器上的注册函数。

代码语言:javascript
复制
$this->server->register('get_stocks',                // method name
        array('product' => 'xsd:int'),        // input parameters
        array('return' => 'xsd:string'),      // output parameters
        $this->_namespace,                      // namespace
        'urn:'.$this->_namespace.'#get_stocks',                // soapaction
        'rpc',                                // style
        'encoded',                            // use
        'Get stocks of products'            // documentation
    ); 

这是我的返回函数

代码语言:javascript
复制
$xmlDoc = new DOMDocument('1.0', 'utf-8');
$xmlDoc->formatOutput = TRUE;
...etc
$nodes = $xmlDoc -> getElementsByTagName ('facilitator');
$node = $nodes -> item(0);

return $xmlDoc->saveXML($node);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-27 07:56:58

从这个Nusoap use existing WSDL how to?

我发现了这个

代码语言:javascript
复制
var $methodreturnisliteralxml = false;

,并在创建nusoap服务器时将其设置为true。

代码语言:javascript
复制
$this->server->methodreturnisliteralxml = true;
票数 1
EN

Stack Overflow用户

发布于 2014-05-26 11:17:29

代码语言:javascript
复制
array('return' => 'xsd:string')

输出是字符串,而不是xml-结构。必须对XML中的字符串进行编码。如果您想返回其他数据,则必须使用ComplexType。看看这个问题:PHP Web Service NuSOAP complex type

示例:

代码语言:javascript
复制
$this->server->wsdl->addComplexType(/** definition **/);


$this->server->register('get_stocks',              // method name
    array('product' => 'xsd:int'),                 // input parameters
    array('return' => 'tns:yourComplexType'),      // output parameters

就像@butching说的,你也有一个编码错配,这是不好的,但不是你的问题的原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23867128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档