如何在XSLT中测试待映射Excel文件的列值?
在XSLT中测试Excel映射列值的正确方法
你当前的代码逻辑存在核心问题:字符串字面量Z_TLS未用引号包裹,XSLT会将其视为节点名称而非字符串值,导致匹配逻辑无法生效。以下是修正后的两种写法:
方式一:使用<xsl:choose>分支判断
<xsl:choose> <xsl:when test="field[@name='SUBCAT'] = 'Z_TLS'"> <!-- 匹配成功时执行的处理代码 --> </xsl:when> <!-- 可按需添加其他<xsl:when>分支或<xsl:otherwise>默认分支 --> </xsl:choose>
方式二:使用<xsl:if>单条件判断
<xsl:if test="field[@name='SUBCAT'] = 'Z_TLS'"> <!-- 匹配成功时执行的处理代码 --> </xsl:if>
额外技巧:忽略大小写匹配
如果需要不区分大小写的匹配,可以通过translate函数统一转换字符串大小写后再比较:
<xsl:if test="translate(field[@name='SUBCAT'], 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'z_tls'"> <!-- 忽略大小写的匹配处理逻辑 --> </xsl:if>
内容的提问来源于stack exchange,提问作者anon
相关产品推荐
相关产品推荐

