就像这个例子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>
什么事? 维托
答案 0 :(得分:2)
这可能与我今天读到的类似问题的原因相同:diazo xsl:template not applying when inside secondary rules file
从那里引用Diazo文档:“内联XSL指令必须直接放在根标记内,并且无条件地应用。”
嗯,显然有些xsl也在根规则标记之外工作,看到代码的其他部分正常工作。
如果您将代码中的css:match="..."
替换为match="obviously wrong[xsl"
,Diazo是否会引发异常?如果没有,那么可能的原因是您的xsl被忽略并需要移动到根角色标记。