在 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>
请注意,这是一个示例,您应该添加其他转换并更新命名空间。
我在 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>
请注意,这是一个示例,您应该添加其他转换并更新命名空间。