php – 如何在SOAP响应中发送纯XML?

我正在使用PHP SoapServer类,并尝试将纯XML放在SOAP响应的主体中.

情况1:

我的WSDL有

<element name="getDataResponse" type="xsd:string"/>

我编码响应

return new SoapVar($my_xml,XSD_ANYXML)

PHP SoapClient说

SOAP-ERROR: Encoding: Violation of encoding rules

案例2:

WSDL

<element name="getDataResponse" type="xsd:string"/>

响应编码

return new SoapVar($my_xml,XSD_STRING)

响应XML全部<编码为& lt;和> as& gt;

案例3:

WDSL

<element name="getDataResponse">
  <complexType>
   ... 
  </complexType>
</element>

其中complexType对应要返回的XML结构

响应编码

return new SoapVar($my_xml,XSD_ANYXML)

现在返回类型是一个对象,而不是XML字符串

案例4

除了编码为SOAP_ENC_OBJECT之外,与案例3相同.结果将是对象.

请帮忙!我怎样才能将纯XML文本作为SOAP响应的主体?

解决方法:

你试过这个吗?

return new SoapVar(
     '<ns1:xmlDocument>'.$my_xml.'</ns1:xmlDocument>',
     XSD_ANYXML
);

还有其他解决方at this PHP page.(参见’用户贡献的注释’部分)

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...