我正在尝试进行XSL转换,以从XML中获取一些看起来像这样的值:
<FOO_CODE>ACPRE</FOO_CODE>
<FOO_SCORE>100</FOO_SCORE>
但是,对于每个不同的XML文件,FOO_CODE可能会有所不同,所以我想在XSL转换中使用'或'语句。我的XSL看起来像这样:
<xsl:for-each select="FOO_CODE">
<xsl:choose>
<xsl:when test=". ='ACPRE or FEPRE or ECGRE'">
<NEW_FOO_CODE>ACPRE</NEW_FOO_CODE>
<NEW_FOO_SCORE>100</NEW_FOO_SCORE>
</xsl:when>
</xsl:choose>
</xsl:for-each>
'或'条件似乎不起作用,因为当它运行时,转换不会将任何数据填充到新节点中。当我删除'或'条件并仅测试特定XML文件中的值时,它确实有效。
任何人都可以建议我做错了吗?
答案 0 :(得分:2)
试试这个:
<xsl:for-each select="FOO_CODE">
<xsl:choose>
<xsl:when test="(.='ACPRE') or (.='FEPRE') or (.='ECGRE')">
<NEW_FOO_CODE>ACPRE</NEW_FOO_CODE>
<NEW_FOO_SCORE>100</NEW_FOO_SCORE>
</xsl:when>
</xsl:choose>
</xsl:for-each>
您无法在单引号内提供比较值。它将被视为正常值而不是运算符。它不会被视为运营商而是价值。