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>
使用克隆版 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>