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

Diazo / XSLT - replace class of content in one of two places in theme

使用克隆版 4.3.x

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

具体来说: 在我的 rules.xml 文件中,我 <replace> 在 theme.html 和 children 共 #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>

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

这可能吗?

如果可以,我该怎么做?

我想要什么

<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>

也许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>