3

我正在用 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 OO 中获得了一个空的“li”标签

怎么了?维托

4

1 回答 1

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:attribute 之前缺少空格是必要的,因为我认为我从来没有让 Diazo 忽略 xsl:* 元素周围的空格。

于 2012-07-11T12:48:18.607 回答