我有一个问题我需要在xsl choose子句中匹配两个参数,有没有办法实现这个?
例如:xsl:当test =我需要检查两个参数时,那么我可以检查一下 相同的价格,但没有ordertype较低。
<xsl:choose>
<xsl:when test="price = 10" && "OrderType='P' ">
<td bgcolor="#ff00ff">
<xsl:value-of select="artist"/></td>
</xsl:when>
<xsl:when test="price = 10">
<td bgcolor="#cccccc">
<xsl:value-of select="artist"/></td>
</xsl:when>
<xsl:otherwise>
<td><xsl:value-of select="artist"/></td>
</xsl:otherwise>
</xsl:choose>
答案 0 :(得分:5)
<xsl:choose>
<xsl:when test="price = 10 and OrderType='P' ">
<td bgcolor="#ff00ff">
<xsl:value-of select="artist"/></td>
</xsl:when>
<xsl:when test="price = 10">
<td bgcolor="#cccccc">
<xsl:value-of select="artist"/></td>
</xsl:when>
<xsl:otherwise>
<td><xsl:value-of select="artist"/></td>
</xsl:otherwise>
</xsl:choose>
答案 1 :(得分:1)
在我上面的评论中,我会这样做,以节省自己未来改变“艺术家”或类似的东西的努力。选择仅与bgcolor有关,应仅应用于此(顺便消除其他条件):
<td>
<xsl:attribute name="bgcolor">
<xsl:choose>
<xsl:when test="price = 10 and OrderType='P' ">
<xsl:text>#ff00ff</xsl:text>
</xsl:when>
<xsl:when test="price = 10">
<xsl:text>#cccccc</xsl:text>
</xsl:when>
</xsl:choose>
</xsl:attribute>
<xsl:value-of select="artist"/>
</td>
答案 2 :(得分:1)
扩展之前的答案,我还建议将您的样式信息放入CSS中,因为您需要的不仅仅是后台在后期更改。此外,你不需要 <xsl:text>
元素,它们只是将空格保持在最低限度,但这不应该像你想象的那样在属性中出现问题。
另外,在可能的情况下,我喜欢使用属性值模板来保持XSL尽可能接近输出,但这纯粹是一种风格选择。
<xsl:variable name="cellClass">
<xsl:choose>
<xsl:when test="price = 10 and OrderType='P' ">
cellPriceTenAndP
</xsl:when>
<xsl:when test="price = 10">
cellPriceTen
</xsl:when>
</xsl:choose>
</xsl:variable>
<td class="{$cellClass}">
<xsl:value-of select="artist"/>
</td>