xsl:attributes剥离“内容”

时间:2012-07-11 11:01:43

标签: plone diazo

我在Diazo写了一些规则。我希望,如果用户浏览“查看器”部分(浏览器视图,而不是真正的plone文件夹),则删除globalnav中“home”选项卡的“selected”类,并将“selected”类放入“查看器“标签。

<replace css:content="#portal-globalnav" css:theme="#portal-globalnav" />
<drop if-path="viewer/" 
        css:content="#portaltab-index_html"
        attributes="class" />    
<xsl:template if-path="viewer/"
          match="//li[@id='portaltab-viewer']/">
<xsl:attribute name="class">selected</xsl:attribute>
</xsl:template>

但结果是一个正确的li portaltab-viewer与“selected”类,但内部没有任何内容!我在portal-globalnav O.O

中获得了一个空的“li”标签

怎么了? 维托

1 个答案:

答案 0 :(得分:4)

您需要使用xsl:apply-templates递归到元素的内容中。尝试:

<replace if-path="/viewer" css:content-children="li#portaltab-viewer"><xsl:attribute name="class">selected</xsl:attribute><xsl:apply-templates select="node()"/></replace>

在xsl:属性之前缺少空格是必要的,因为我认为我没有让Diazo忽略xsl:*元素周围的空白。