2017-08-12 76 views
0

我有下面的代碼作爲肥皂主體來調用API。我需要將此值設爲'#06164F4','00000116','## 00000130',並且值會繼續..用單引號和逗號分隔。我嘗試了concat和字符串連接,但無法獲得確切的輸出。如何從soap body有效載荷中獲取所有TOLL_NUMBER。xpath連接肥皂有效負載值

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:v1="http://www.oracle.com/Argus/Contract/v1.0" xmlns:v11="http://www.oracle.com/Argus/Types/v1.0"> 
    <soap:Header/> 
    <soap:Body> 
     <ns0:SFT_MSG ns1:Type="Request" ns1:EnterpriseShortName="ns0:EnterpriseShortName_1" xmlns:ns1="http://www.oracle.com/Argus/Base/v1.0" xmlns:ns0="http://www.oracle.com/Argus/TOLL_Request/v1.0"> 
    <ns0:TOLL_LOOKUP> 
    <ns0:TOLL> 
     <ns2:TOLL_NUMBER xmlns:ns2="http://www.oracle.com/Argus/Entity/v1.0">#06164F4</ns2:TOLL_NUMBER> 
     <ns2:EXPIRATION_DATE xmlns:ns2="http://www.oracle.com/Argus/Entity/v1.0">ns1:EXPIRATION_DATE_0</ns2:EXPIRATION_DATE> 
    </ns0:TOLL> 
    <ns0:TOLL> 
     <ns2:TOLL_NUMBER xmlns:ns2="http://www.oracle.com/Argus/Entity/v1.0">00000116</ns2:TOLL_NUMBER> 
     <ns2:EXPIRATION_DATE xmlns:ns2="http://www.oracle.com/Argus/Entity/v1.0">ns1:EXPIRATION_DATE_0</ns2:EXPIRATION_DATE> 
    </ns0:TOLL> 
    <ns0:TOLL> 
     <ns2:TOLL_NUMBER xmlns:ns2="http://www.oracle.com/Argus/Entity/v1.0">##00000130</ns2:TOLL_NUMBER> 
     <ns2:EXPIRATION_DATE xmlns:ns2="http://www.oracle.com/Argus/Entity/v1.0">ns1:EXPIRATION_DATE_0</ns2:EXPIRATION_DATE> 
    </ns0:TOLL> 
    </ns0:TOLL_LOOKUP> 
    <ns1:EXTENSION> 
    <ns1:CUSTOM ns1:Name="ns0:Name_0" ns1:Metadata="ns0:Metadata_1">ns0:CUSTOM_0</ns1:CUSTOM> 
    <ns1:SFT_MSG_ELEMENT> 
     <any0>anyContents0</any0> 
    </ns1:SFT_MSG_ELEMENT> 
    </ns1:EXTENSION> 
</ns0:SFT_MSG> 
    </soap:Body> 
</soap:Envelope> 

回答

0

在XPath 2.0,你可以使用concat()string-join()組合...

concat("&apos;",string-join(//*:TOLL_NUMBER,"&apos;,&apos;"),"&apos;") 

注:這將是最好的命名空間URI http://www.oracle.com/Argus/Entity/v1.0的前綴和使用該綁定,而不是*:TOLL_NUMBER