SoapClient オブジェクトを使用して SOAP Web サービスを呼び出す必要があります。パラメータの 1 つは、次のように CDATA セクションに含まれる XML を含む必要があります。
<ns2:productInformation><![CDATA[<foo><bar>baz</bar></foo>]]></ns2:productInformation>
ノードの名前空間に注意してください。それが私の痛みの原因です...
string を作成する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 セクションを作成するアイデアはありますか?