2012-06-13 8 views
10

SoapClientオブジェクトを使用してSOAP Webサービスを呼び出す必要があります。パラメータの一つは、このように、いくつかのXMLは、CDATAセクションに含まれて含まれています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">&lt;![CDATA[&lt;foo&t;&lt;bar&gt;baz&lt;/bar&gt;&lt;/foo&gt;]]&gt;</ns2:productInformation> 

私はこのようにすることはできません。ハードコーディングされた名前空間のショートカット(「NS2」)を見てください...

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

それは動作しますが、それは悪いです:私が見つけた唯一の選択肢は、このように、XSD_ANYXMLエンコーディングを使用することです。

XMLを含むCDATAセクションを作成する方法はありますか?

答えて

1

私は同じ要求(要求の一部を文字列にエンコードされたXMLとして埋め込む必要があり、CDATAではなくエンティティでエンコードされた文字列を与えると爆発する)

自分の能力を最大限に引き出すには、SoapVarの回避策が得られるほど良い方法です。ごめんなさい。私は、自分自身で名前空間の参照をハードコードすることに不満を抱いています。

関連する問題