如何使用xslt在foreach循环上应用if-else



我必须使用xslt根据if-else条件过滤/分配有效负载中的数据到xml标记。

我必须在">RIMSTS"标记上应用if-else,我使用以下代码进行应用。但它不起作用。它在验证过程中抛出了一些无效的xslt。有人能帮我提供正确的语法或正确的应用方式吗。

<xsl:for-each select="message/lines">
<LINE_SEG>
<xsl:if test="not(normalize-space(costAmount)) = ''">
<CSTMS_CST>
<xsl:value-of select="normalize-space(costAmount)"/>
</CSTMS_CST>
</xsl:if>
<PO_CHANNEL></PO_CHANNEL>
<xsl:choose>
<xsl:when test="linestatusCd = 100">
<RIMSTS>OPEN</RIMSTS>
</xsl:when>
<xsl:when test="linestatusCd= 200 or 300">
<RIMSTS>CLOSED</RIMSTS>
</xsl:when>
</LINE_SEG>
</xsl:for-each>
linestatusCd= 200 or 300

看远了,你可能是指

linestatusCd = 200 or linestatusCd = 300

您还没有关闭<choose>元素。

<xsl:for-each select="message/lines">
<LINE_SEG>
<xsl:if test="not(normalize-space(costAmount)) = ''">
<CSTMS_CST>
<xsl:value-of select="normalize-space(costAmount)"/>
</CSTMS_CST>
</xsl:if>
<PO_CHANNEL></PO_CHANNEL>
<xsl:choose>
<xsl:when test="linestatusCd = 100">
<RIMSTS>OPEN</RIMSTS>
</xsl:when>
<xsl:when test="linestatusCd = 200 or linestatusCd = 300">
<RIMSTS>CLOSED</RIMSTS>
</xsl:when>
</xsl:choose>
</LINE_SEG>
</xsl:for-each>

相关内容

  • 没有找到相关文章

最新更新