Php 如何使用XML创建包含CDATA的SoapVar?

Php 如何使用XML创建包含CDATA的SoapVar?,php,soap,soap-client,Php,Soap,Soap Client,我必须使用SoapClient对象调用soapweb服务。其中一个参数必须包含CDATA部分中包含的一些XML,如下所示: <ns2:productInformation><![CDATA[<foo><bar>baz</bar></foo>]]></ns2:productInformation> new SoapVar('<ns2:productInformation><![CDATA[<

我必须使用SoapClient对象调用soapweb服务。其中一个参数必须包含CDATA部分中包含的一些XML,如下所示:

<ns2:productInformation><![CDATA[<foo><bar>baz</bar></foo>]]></ns2:productInformation>
new SoapVar('<ns2:productInformation><![CDATA[<foo><bar>baz</bar></foo>]]></ns2:productInformation>', XSD_ANYXML)
所以我不能这样做。我发现的唯一替代方法是使用
XSD\u ANYXML
编码,如下所示:

<ns2:productInformation><![CDATA[<foo><bar>baz</bar></foo>]]></ns2:productInformation>
new SoapVar('<ns2:productInformation><![CDATA[<foo><bar>baz</bar></foo>]]></ns2:productInformation>', XSD_ANYXML)
newsoapvar('baz]]>',XSD_ANYXML)
这很有效,但很糟糕。。。查看硬编码的名称空间快捷方式(“ns2”)


那么您有没有想法创建一个包含XML的CDATA节?

我也有同样的要求(设计不当的供应商web服务要求将请求的一部分嵌入到字符串中编码的XML中,如果您给它一个实体编码的字符串而不是CDATA,它就会崩溃)

尽我所能,您的
SoapVar
解决方案已经非常好了。很抱歉我很不高兴自己不得不硬编码一个名称空间引用