我有一个侧边栏菜单,可以在li中创建div。
我遇到的问题是,如果菜单中的项目处于活动状态,则不应在其之前创建非活动div。即:它应该只有<li><div></div></li>
,而不是<li><div></div><div></div></li>
。
<xsl:if test="number(ParentEntityID) = 0 and EntityID!=$pCatID">
<div class="inactive">
<!--<a href="{concat('c-',EntityID,'-',SEName,'.aspx')}" style="color:black">-->
<xsl:choose>
<xsl:when test="count(child::Entity)=0">
<a href="{concat('c-',EntityID,'-',SEName,'.aspx')}" style="color:black">
<xsl:value-of select="$eName"/>
</a>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="EntityID=$ParentCategoryID">
<div class="active">
<xsl:value-of select="$eName"/>
</div>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$eName"/>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
<!--</a>-->
</div>
</xsl:if>
输出:
<li>
**<div class="inactive">**
<div class="active">
Active item
**</div>**
</div>
</li>
<li>
<div class="inactive">
Inactive item
</div>
</li>
上述代码中必须更改哪些内容,以便不在活动div之外创建非活动div,并且只应在不活动的位置创建?我把线放在不应该存在的**中。
我知道这与正确安排test="EntityID=$ParentCategoryID"
或if
声明有关,但却无法弄明白。
答案 0 :(得分:0)
这个版本怎么样?
<xsl:if test="number(ParentEntityID) = 0 and EntityID!=$pCatID">
<xsl:choose>
<xsl:when test="count(child::Entity)=0">
<a href="{concat('c-',EntityID,'-',SEName,'.aspx')}" style="color:black">
<xsl:value-of select="$eName"/>
</a>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="EntityID=$ParentCategoryID">
<div class="active">
<xsl:value-of select="$eName"/>
</div>
</xsl:when>
<xsl:otherwise>
<div class="inactive">
<xsl:value-of select="$eName"/>
</div>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:if>