2012-06-13 4 views
10

SoapClient 객체를 사용하여 SOAP 웹 서비스를 호출해야합니다. 내가 문자열 SoapVar을 만드는 경우 ... 내 고통의 근원이다,XML로 CDATA가 포함 된 SoapVar를 만들려면 어떻게해야합니까?

<ns2:productInformation><![CDATA[<foo><bar>baz</bar></foo>]]></ns2:productInformation> 

주 노드 네임 스페이스

를 : 매개 변수 중 하나는이 같은 CDATA 섹션에 포함 된 일부 XML을 포함한다 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> 

그래서이 방법을 사용할 수 없습니다. 내가 찾은 유일한 대안이처럼 XSD_ANYXML 인코딩을 사용하는 것입니다

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

그것은 작동하지만, 나쁜 ... 하드 코드 된 네임 스페이스 바로 가기 ("NS2") 봐.

그렇다면 XML이 포함 된 CDATA 섹션을 만들 생각입니까?

답변

1

동일한 요구 사항 (요청의 일부를 문자열로 인코딩 된 XML로 포함해야하는 불완전한 공급 업체 웹 서비스이며, CDATA 대신 엔티티 인코딩 된 문자열을 제공하면 불어납니다).

내 능력을 최대한 확인하기 위해 SoapVar 해결 방법이 좋습니다. 죄송합니다. 네임 스페이스 참조를 직접 하드 코딩해야하는 것에 대해 불만이 있습니다.

관련 문제