在 WSO2 ESB 的内联 XML 条目中使用 If/else 语句

Use of If/else statement in Inlined XML Entry in WSO2 ESB

我在 WSO2 中使用 Local Entry Inlined XML Entry 来执行一些转换。我必须检查是否要将元素硬编码为响应值以响应我的客户端响应。比如他们发09作为响应码,我转换后就得发00了。

<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>

请注意,这是一个示例,您应该添加其他转换并更新命名空间。