10
我必須使用SoapClient對象調用SOAP Web服務。其中一個參數必須包含包含在CDATA節中的某些XML,像這樣:如何使用XML創建包含CDATA的SoapVar?
<ns2:productInformation><![CDATA[<foo><bar>baz</bar></foo>]]></ns2:productInformation>
注意節點的命名空間,這是我痛苦的根源......
如果我創建一個字符串SoapVar
, XML編碼...
new SoapVar('<![CDATA[<foo><bar>baz</bar></foo>]]>', XSD_STRING, null, 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部分?