xml - 如何使用 xslt 在 foreach 循环上应用 if-else
问题描述
我必须使用 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>
解决方案
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>
推荐阅读
- python - 如何在 Protobuf 中序列化嵌套消息中的默认值
- java - 除了 onMapReady 之外,如何在 Google 地图中添加自定义标记
- r - 如何在一系列列中仅按 ID 计算新错误?
- python-3.x - 将 int64 列复制到新列并将 Str 附加到 Pandas DataFrame 中每条记录的末尾
- reactjs - SCRIPT1010:在 IE11 中编译 React 项目时出现预期标识符错误
- pandas - 熊猫将列放置到位并返回
- angular - SCSS 文件中导入的样式表未使用 ng-packagr 打包?
- virtual-machine - 模拟/虚拟化嵌入式 i586 Linux 网关
- sql - 设置一个行值以重复直到下一个实例
- azure - 在 azure k8s 上设置入口