Xml 使用';或';XSL转换中的条件
我正在尝试进行XSL转换,以从XML中获取一些如下所示的值:Xml 使用';或';XSL转换中的条件,xml,xslt,Xml,Xslt,我正在尝试进行XSL转换,以从XML中获取一些如下所示的值: <FOO_CODE>ACPRE</FOO_CODE> <FOO_SCORE>100</FOO_SCORE> <xsl:for-each select="FOO_CODE"> <xsl:choose> <xsl:when test=". ='ACPRE or FEPRE
<FOO_CODE>ACPRE</FOO_CODE>
<FOO_SCORE>100</FOO_SCORE>
<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>
ACPRE
100
但是,对于每个不同的XML文件,FOO_代码可能会有所不同,因此我希望在XSL转换中使用“or”语句。我的XSL如下所示:
<FOO_CODE>ACPRE</FOO_CODE>
<FOO_SCORE>100</FOO_SCORE>
<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>
ACPRE
100
“或”条件似乎不起作用,但在运行时,转换不会将任何数据填充到新节点中。当我删除“or”条件并只测试特定XML文件中的值时,它确实起作用
有人能告诉我我做错了什么吗?试试这个:
<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>
ACPRE
100
不能在单引号内提供要比较的值。它将被视为正常值,而不是运算符。它不会被视为运算符,而是值