我必须使用SoapClient对象调用SOAP Web服务.其中一个参数必须包含CDATA部分中包含的一些
XML,如下所示:
<ns2:productinformation><![CDATA[<foo><bar>baz</bar></foo>]]></ns2:productinformation>
注意节点命名空间,这是我痛苦的根源…
如果我创建一个字符串SoapVar,XML被编码…
new SoapVar('<![CDATA[<foo><bar>baz</bar></foo>]]>',XSD_STRING,null,'productinformation',self::MY_NAMESPACE) <ns2:productinformation xsi:type="xsd:string"><![CDATA[<foo&t;<bar>baz</bar></foo>]]></ns2:productinformation>
所以我不能这样做.我发现唯一的选择是使用XSD_ANYXML编码,如下所示:
new SoapVar('<ns2:productinformation><![CDATA[<foo><bar>baz</bar></foo>]]></ns2:productinformation>',XSD_ANYXML)
它工作,但它是坏的…看看硬编码命名空间快捷方式(“ns2”).
那么你有没有想法来创建一个包含XML的CDATA部分?