微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我必须使用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">&lt;![CDATA[&lt;foo&t;&lt;bar&gt;baz&lt;/bar&gt;&lt;/foo&gt;]]&gt;</ns2:productinformation>

所以我不能这样做.我发现唯一的选择是使用XSD_ANYXML编码,如下所示:

new SoapVar('<ns2:productinformation><![CDATA[<foo><bar>baz</bar></foo>]]></ns2:productinformation>',XSD_ANYXML)

它工作,但它是坏的…看看硬编码命名空间快捷方式(“ns2”).

那么你有没有想法来创建一个包含XML的CDATA部分?

我有同样的要求(恶意设计的供应商Web服务,需要将一部分请求嵌入到以XML编码的字符串中,并且如果给它一个实体编码的字符串而不是CDATA,那么它会爆炸).

为了尽我最大的努力,您的SoapVar解决方法与其一样好.抱歉.我不得不自己硬编码一个命名空间引用我很不高兴.

原文地址:https://www.jb51.cc/php/132337.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐