php – 如何使用XML创建包含CDATA的SoapVar?
发布时间:2020-12-13 16:33:15 所属栏目:PHP教程 来源:网络整理
导读:我必须使用SoapClient对象调用SOAP Web服务.其中一个参数必须包含CDATA部分中包含的一些 XML,如下所示: ns2:productInformation![CDATA[foobarbaz/bar/foo]]/ns2:productInformation 注意节点命名空间,这是我痛苦的根源… 如果我创建一个字符串SoapVar,XML
我必须使用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部分?
我有同样的要求(恶意设计的供应商Web服务,需要将一部分请求嵌入到以XML编码的字符串中,并且如果给它一个实体编码的字符串而不是CDATA,那么它会爆炸).
为了尽我最大的努力,您的SoapVar解决方法与其一样好.抱歉.我不得不自己硬编码一个命名空间引用我很不高兴. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |