修改添加值的某些标记的属性

时间:2013-10-10 16:08:06

标签: xslt plone diazo

就像这个例子https://plone-theming-with-diazo.readthedocs.org/en/latest/snippets_diazo/recipes/index.html#add-attributes-on-the-fly 我需要修改所有特定标记的类,添加一个值(在内容方面)。

这条规则不起作用:

<xsl:template css:match="ul.navTreeLevel0 li">
        <xsl:attribute name="class"><xsl:value-of select="./@class"/> no-bullet</xsl:attribute>
    </xsl:template>

我想在带有“navTreeLevel0”类的ul中的任何li标签上添加值“no-bullet”。

Diazo不会引发异常。

在同一规则文件中我遇到了类似的情况,但在这种情况下有效:

<replace content="//div[contains(@class,'cell')]/@class">
    <xsl:attribute name="class">
    <xsl:if test='contains(current(),"width-3:4")'>nine large-9 columns</xsl:if>
    <xsl:if test='contains(current(),"width-2:3")'>height large-8 columns</xsl:if>
    <xsl:if test='contains(current(),"width-1:2")'>six large-6 columns</xsl:if>
    <xsl:if test='contains(current(),"width-1:3")'>four large-4 columns</xsl:if>
    <xsl:if test='contains(current(),"width-1:4")'>three large-3 columns</xsl:if>
    <xsl:if test='contains(current(),"width-full")'>twelve large-12 columns</xsl:if>
    </xsl:attribute>
</replace>

什么事? 维托

1 个答案:

答案 0 :(得分:2)

这可能与我今天读到的类似问题的原因相同:diazo xsl:template not applying when inside secondary rules file

从那里引用Diazo文档:“内联XSL指令必须直接放在根标记内,并且无条件地应用。”

嗯,显然有些xsl也在根规则标记之外工作,看到代码的其他部分正常工作。

如果您将代码中的css:match="..."替换为match="obviously wrong[xsl",Diazo是否会引发异常?如果没有,那么可能的原因是您的xsl被忽略并需要移动到根角色标记。