2017-03-21 46 views
0

我在WSO2中使用本地條目內聯XML條目來執行某些轉換。我必須檢查,如果一個元素硬編碼到我的客戶端響應的值。例如,如果他們發送09作爲響應代碼,我必須在轉換後發送00。使用WSO2 ESB中的內聯XML條目中的If/else語句

<xsl:element name="ns1:ResponseCode"> 
    <xsl:value-of select="//jsonObject/d/SuccessCode"/> 
</xsl:element> 
+0

你可以看看這個:https://www.w3schools.com/xml/xsl_choose.asp 如果你已經嘗試了一些不起作用的東西 - 告訴我們你的代碼。此外,您可能想閱讀:http://stackoverflow.com/help/mcve –

+0

我不知道該怎麼做,但在這裏我現有的代碼 Kasun

回答

0

您可以使用<xsl:choose></xsl:choose>元素。
它可以包含儘可能多的<xsl:when test="..."></xsl:when>元素,你需要和一個<xsl:otherwise></xsl:otherwise>元素。

在這種情況下,你描述的:

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:ns1="http://www.example.com"> 
<xsl:output method="xml" /> 

<xsl:template match="@* | node()"> 
    <xsl:copy> 
     <xsl:apply-templates select="@* | node()"/> 
    </xsl:copy> 
</xsl:template> 

<xsl:template match="SuccessCode"> 
    <xsl:element name="ns1:ResponseCode"> 
     <xsl:choose> 
      <xsl:when test="//jsonObject/d/SuccessCode/text()='09'"> 
       <xsl:value-of select="'00'"/> 
      </xsl:when> 
      <xsl:otherwise/> 
     </xsl:choose>    
    </xsl:element> 
</xsl:template> 

注意,這是一個例子,你應該添加其他的轉換和更新命名空間。

+0

謝謝men.its工作,但不是在選擇其IF.any方式,謝謝我從你的邏輯。 Kasun

+0

嘿,如果你有任何想法如何給這部分 Kasun

+0

如果你想實現 「的if-else」可以使用「選擇 - 何時/不然」 - 它完全符合你想要做的事情。 「何時」是條件所在 - 您可以有多個條件,即在同一個「選擇」元素中有多個「何時」。 「否則」就像「其他」。如果您想使用「if」,另一個選項是使用第二個「if」,並且條件相反。 @Kasun –