2012-07-11 74 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