SoapUI에서이 XML을 사용하고 있지만 PHP 5.3을 사용하는 서버에서 해당 데이터를 사용해야합니다. 내 $ 문자열을 배열로 변환해야한다고 생각합니다. $ xml = (배열) simplexml_load_string ($ string); 오류는 발생하지 않지만 호출의 응답은 NULL입니다.SoapUI의 xml을 PHP로 사용하는 방법
$string = '
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tran="http://www.cornerstoneondemand.com/Webservices/TranscriptAndTask">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-115E54B97689076253912">
<wsse:Username>me</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">word</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">dvhXLFiL4Aoi2KQ==</wsse:Nonce>
<wsu:Created>2016-10-19T15:26:02.539Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<tran:GetTranscriptAndTasks>
<tran:request>
<Request corpName="learning">
<User id="me">
<RequestTypes>
<Inbox/>
<Transcript inprogressOnly="false" pageNumber="1"/>
<Session pageNumber="1" upcomingOnly="true"/>
<Assigned assignedOnly="true"/>
<Approval approvalDateRequested="1967-08-13"/>
<Task pendingTasksOnly="true"/>
<SuggestedTraining pageNumber="1"/>
</RequestTypes>
</User>
</Request>
</tran:request>
</tran:GetTranscriptAndTasks>
</soapenv:Body>
</soapenv:Envelope>
';
$xml = (array)simplexml_load_string($string);
$soapClient = new SoapClient($wsdl, array('trace' => 1));
$response = $soapClient->GetTranscriptAndTasks($xml);
var_dump($response);
도움을 주시면 대단히 감사하겠습니다!
편집 :https://github.com/sapankumarmohanty/lamp/blob/master/Crate-XML-2-Array xml을 멋진 배열로 변환합니다. 하지만 내 결과는 여전히 NULL입니다 ... 도움이된다면 여기에 WSDL을 복사했습니다 (http://www.markforsyth.com/TranscriptAndTaskService.wsdl).
이것은 어느 때보 다 가까와졌습니다! 이제 NULL 대신에
Mark
이제 추측하고 있습니다 : xml 코드의 사본은''에서 시작해야합니다. 하지만이 시점에서 시작하여 "tran"네임 스페이스의 정의가 잘못되었습니다. XML 코드의 시작 부분에 정의되어 있기 때문입니다. 해결책 :''항목에'xmlns : tran = "http://www.cornerstoneondemand.com/Webservices/TranscriptAndTask"'를 추가하십시오 –
우수 '추측'맞습니다! :) – Mark