2017-03-02 32 views
-1

我已成功在nusoap中返回響應。我有請求是我如何擺脫nusoap響應中的額外<return>元素

<x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:B2BStandardApi"> 
<x:Header/> 
<x:Body> 
    <urn:getAccountValidationInput> 
     <urn:operationParameters> 
      <urn:TransactionReferenceCode>?</urn:TransactionReferenceCode> 
      <urn:TransactionDate>2017-03-02T00:00:00</urn:TransactionDate> 
     </urn:operationParameters> 
     <urn:accountInfo> 
      <urn:AccountNumber>00019</urn:AccountNumber> 
     </urn:accountInfo> 
     <urn:institution> 
      <urn:InstitutionCode>?</urn:InstitutionCode> 
      <urn:InstitutionName>?</urn:InstitutionName> 
     </urn:institution> 
    </urn:getAccountValidationInput> 
</x:Body> 

並且被如下所示的響應,

<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"> 
<SOAP-ENV:Header>headerstring</SOAP-ENV:Header> 
<SOAP-ENV:Body> 
    <ns1:getAccountValidationOutput xmlns:ns1="urn:B2BStandardApi"> 
     <return> 
      <operationParameters> 
       <TransactionReferenceCode xsi:type="xsd:string">CICAM-000080</TransactionReferenceCode> 
       <TransactionDate xsi:type="xsd:string">2017-03-02 13:43:59+03:00</TransactionDate> 
       <TotalAmount xsi:type="xsd:float">0</TotalAmount> 
       <Currency xsi:type="xsd:string"></Currency> 
       <AdditionalInfo xsi:type="xsd:string"></AdditionalInfo> 
      </operationParameters> 
      <accountInfo xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="unnamed_struct_use_soapval[3]"> 
       <item> 
        <AccountNumber xsi:type="xsd:string">00017-002-00019-003</AccountNumber> 
        <AccountType xsi:type="xsd:string">Equity Fund</AccountType> 
       </item> 
       <item> 
        <AccountNumber xsi:type="xsd:string">00017-002-00019-004</AccountNumber> 
        <AccountType xsi:type="xsd:string">Fixed Income</AccountType> 
       </item> 
       <item> 
        <AccountNumber xsi:type="xsd:string">00017-004-00019-002</AccountNumber> 
        <AccountType xsi:type="xsd:string">Money Market</AccountType> 
       </item> 
      </accountInfo> 
      <institution> 
       <InstitutionCode xsi:type="xsd:string">CICAM</InstitutionCode> 
       <InstitutionName xsi:type="xsd:string">CIC ASSET MANAGEMENT</InstitutionName> 
      </institution> 
     </return> 
    </ns1:getAccountValidationOutput> 
</SOAP-ENV:Body> 

我想從效應初探刪除多餘的元件,所述expetected效應初探不應該有返回標記,

該服務在NuSoapPHP7上運行。

如何刪除多餘的元素

+0

你嘗試過這麼遠嗎? –

+0

您是否編寫了生成響應的代碼?如果沒有,那麼你必須處理他們給你的東西! – RiggsFolly

+0

Marcin Orlowski,我試着寫了一個resposne類,它將序列化返回,但它給了一個空的響應,RiggsFolly,是的,我做到了。我有一個驗證函數從數據庫中獲取數據並返回響應 – Ally

回答

0

一些挖後,我意識到發現,返回標籤是從返回的參數,所有這一切都需要的是使用的輸入參數作爲回報。 初始註冊顯示爲

$server->register(
"getAccountValidationInput", 
array("operationParameters" => "tns:operationParameters", "accountInfo" => "tns:accountInfo", "institution" => "tns:institution"), 
array("return" => "xsd:Array"), 
"urn:B2BStandardApi", 
"urn:B2BStandardApi#AccountValidation", 
"rpc", "literal", "Get member details by member number" 

);

根據以上所述,我被返回一個數組這將返回鍵作爲XML元素內纏繞,

所需是

$server->register(
"getAccountValidationInput", 
array("operationParameters" => "tns:operationParameters", "accountInfo" => "tns:accountInfo", "institution" => "tns:institution"), 
array("operationParameters" => "tns:Parameters", "accountInfo"=>"tns:accounts", "institution"=>"institution"), 
"urn:B2BStandardApi", 
"urn:B2BStandardApi#AccountValidation", 
"rpc", "literal", "Get member details by member number" 

);

的返回值將作爲

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"> 
<SOAP-ENV:Header>headerstring</SOAP-ENV:Header> 
<SOAP-ENV:Body> 
    <ns1:getAccountValidationOutput xmlns:ns1="urn:B2BStandardApi"> 
     <operationParameters> 
      <TransactionReferenceCode>CICAM-000114</TransactionReferenceCode> 
      <TransactionDate>2017-03-03 11:02:53+03:00</TransactionDate> 
      <TotalAmount>0</TotalAmount> 
      <Currency></Currency> 
      <AdditionalInfo/> 
     </operationParameters> 
     <accountInfo> 
      <item> 
       <AccountNumber>0001700200019004</AccountNumber> 
       <AccountName>Fixed Income</AccountName> 
      </item> 
     </accountInfo> 
     <institution> 
      <InstitutionCode>CICAM</InstitutionCode> 
      <InstitutionName>ASSET MANAGEMENT</InstitutionName> 
     </institution> 
    </ns1:getAccountValidationOutput> 
</SOAP-ENV:Body> 

相關問題