我在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”标签怎么了? 维托
答案 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:*元素周围的空白。