我必须根据使用xslt的条件,将数据从有效负载过滤/分配给xml标签。
我必须在“ RIMSTS”标签上加上if-else,我正在使用下面的代码来应用。但是它不起作用。它在验证期间抛出了一些无效的xslt。有人可以帮我吗在for-each中应用if-else的正确语法或正确方法。
<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>