我在WSO2中使用本地條目內聯XML條目來執行某些轉換。我必須檢查,如果一個元素硬編碼到我的客戶端響應的值。例如,如果他們發送09作爲響應代碼,我必須在轉換後發送00。使用WSO2 ESB中的內聯XML條目中的If/else語句
<xsl:element name="ns1:ResponseCode">
<xsl:value-of select="//jsonObject/d/SuccessCode"/>
</xsl:element>
我在WSO2中使用本地條目內聯XML條目來執行某些轉換。我必須檢查,如果一個元素硬編碼到我的客戶端響應的值。例如,如果他們發送09作爲響應代碼,我必須在轉換後發送00。使用WSO2 ESB中的內聯XML條目中的If/else語句
<xsl:element name="ns1:ResponseCode">
<xsl:value-of select="//jsonObject/d/SuccessCode"/>
</xsl:element>
您可以使用<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>
注意,這是一個例子,你應該添加其他的轉換和更新命名空間。
你可以看看這個:https://www.w3schools.com/xml/xsl_choose.asp 如果你已經嘗試了一些不起作用的東西 - 告訴我們你的代碼。此外,您可能想閱讀:http://stackoverflow.com/help/mcve –
我不知道該怎麼做,但在這裏我現有的代碼 xsl:element> –
Kasun