1
我有SoapUI與這個xml一起工作,但我需要使用php 5.3在我的服務器上使用這些數據。我想我需要將我的$字符串轉換爲數組。 $ xml =(array)simplexml_load_string($ string);不會拋出任何錯誤,但來自該調用的響應是NULL。如何在php中使用SoapUI的xml
$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我回來<結果xmlns =「」errCode =「 - 1」errDescr =「請求xml是空的」。如果我在GetTranscriptAndTasks()中輸入SoapUI xml,或者什麼都沒有,我會得到相同的錯誤。 – Mark
現在我只是猜測: 您的xml代碼複製應該從''開始。但是從這一點開始,你會誤解「tran」命名空間的定義,因爲它是在xml代碼的開始處定義的。解決方案:向''項目添加'xmlns:tran =「http://www.cornerstonechina.com/Webservices/TranscriptAndTask」'項目 –
優秀的'猜'你是對的! :) – Mark