【发布时间】:2020-03-13 17:03:05
【问题描述】:
我必须使用 xslt 根据 if else 条件从有效负载过滤/分配数据到 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>
【问题讨论】:
-
请提供minimal reproducible example。从表面上看,您缺少一个结束
</xsl:choose>标记。 --附言如果您收到错误消息,明智的做法是逐字重现。
标签: xml xslt xslt-1.0 xslt-2.0