2012-07-11 72 views
3

我正在重写一些规则。我希望在用户浏览“查看器”部分(浏览器视图,而不是真正的plone文件夹)时,放弃globalnav中“主页”选项卡的“选定”类,并将“选定”类放入“查看器“选项卡。xsl:属性去除“内容”

<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查看器与“选择”类,但没有任何内容!我在门户网站获得一个空的“li”标签 - globalnav O.O

怎么了? Vito

回答

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之前缺乏的空白:*内容:我不认为我曾经得到周围做重氮理睬周围XSL空白做属性是必要的。

+1

伟大的劳伦斯,像往常一样;) – Vito 2012-07-11 18:14:35

+0

我也试过这个规则与href属性,但在这种情况下,你的代码不起作用。 : -/ – Vito 2012-07-12 10:44:47

+1

在这种情况下,您应该将其降低到可以使用diazorun运行的最小失败示例,以便重现问题。 – 2012-07-12 14:03:53