Diazo / XSLT - 替换主题中两个位置之一的内容类

时间:2016-05-19 19:24:15

标签: xslt plone diazo

使用Plone 4.3.x

基本上:如何从内容中复制一组元素以在主题中放置和放置b并在适当位置b更改复制元素的属性?

具体来说:在我的rules.xml文件中,我<replace>在theme.html中使用.replace-main-nav的两个#navigation来自内容:

rules.xml中:

<replace css:theme=".replace-main-nav"
         css:content-children="#navigation" />

theme.html中的地点示例:

<div class="place-a">
    <del class="replace-main-nav"><!-- place nav here --></del>
</div>

<div class="place-b">
    <del class="replace-main-nav"><!-- place nav here again --></del>
</div>

导航内容的示例

<div id="navigation">
    <ul>
        <li class="foo">
            Item 1
        </li>
        <li class="foo">
            Item 2
        </li>
        <li class="foo">
            Item 3
        </li>
    </ul>
</div>

仅当class="foo"替换class="baa"中的<ul>时,我才想将.replace-main-nav替换为.place-b

这可能吗?

如果是这样我该怎么办?

我想要的是什么

<div class="place-a">        
    <ul>
        <li class="foo">
            Item 1
        </li>
        <li class="foo">
            Item 2
        </li>
        <li class="foo">
            Item 3
        </li>
    </ul>
</div>

<div class="place-b">        
    <ul>
        <li class="baa">
            Item 1
        </li>
        <li class="baa">
            Item 2
        </li>
        <li class="baa">
            Item 3
        </li>
    </ul>
</div>

1 个答案:

答案 0 :(得分:1)

也许this有帮助?

这样的事情? (未经测试)

<replace css:content-children=".place-b">
  <ul>
  <xsl:for-each select="//*[@id='navigation']/*">
    <li class="baa">
      <xsl:copy-of select="./text()" />
    </li>
  </xsl:for-each>
  </ul>
</replace>