<div class="filter">
<xsl:attribute name="class">
<xsl:if test="@class=filter">
filter
</xsl:if>
<xsl:value-of select="Category"/>
</xsl:attribute>
</div>
我想添加一个新类,我从xsl值到上面的div包含过滤器 类。但我这样做只是删除我的< strong>上一课和添加新课程。但我想同时添加两个课程。
答案 0 :(得分:0)
声明<xsl:if test="@class=filter">
可能没有按照您的预期行事。
首先,它将属性class
与XML中名为filter
的元素进行比较(可能不存在)。您可能需要将类与字符串值进行比较,您可以这样做:
<xsl:if test="@class='filter'">
但是,这导致了第二个问题。此测试检查输入XML(您尚未显示)中的类属性,以及当前匹配的元素。它不会检查您刚刚在输出中<div>
创建的类属性。
使用xsl:attribute
将替换您正在处理的元素上的所有现有属性,因此您无需将class="filter"
放在<div>
上。你可以这样做....
<div>
<xsl:attribute name="class">
<xsl:text>filter </xsl:text>
<xsl:value-of select="Category"/>
</xsl:attribute>
</div>
更好的是,使用readonly_fields
,这样您就可以直接将class
属性添加到<div>
标记
<div class="filter {Category}" />
因此,“filter”将作为字符串输出,但花括号表示要计算的表达式,因此{@ 1}}元素的值将在此处输出。