我在WSO2中使用Local Entry Inlined XML Entry来执行一些转换。我必须检查一个元素是硬编码响应值到我的客户端响应。例如,如果他们发送09作为响应代码,我必须在转换后发送00。
<xsl:element name="ns1:ResponseCode">
<xsl:value-of select="//jsonObject/d/SuccessCode"/>
</xsl:element>
答案 0 :(得分: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>
请注意,这是一个示例,您应该添加其他转换并更新命名空间。