3

我正在尝试在重氮规则中使用 xslt“调用模板”指令,因为我不想“重复我自己”。

但是,当我设置 xsl:template 并在规则中使用 xsl:call-template 调用它时,我从重氮调试器中获得了一个异常

元素模板只允许作为样式表的子元素

怎么了?我可以使用 call-tempalte 吗?如果没有,我怎么不能在 xslt 模板中重复我自己?

例子:

<?xml version="1.0" encoding="UTF-8"?>
<rules
xmlns="http://namespaces.plone.org/diazo"
xmlns:css="http://namespaces.plone.org/diazo/css"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xi="http://www.w3.org/2001/XInclude">

<!-- indent and strip space for pretty output -->
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>



<theme href="index.html" />

<after css:theme-children="body">
    <xsl:call-template name="hello"></xsl:call-template>
</after>



<xsl:template name="hello">
    <xsl:element name="div">
        Hello!
    </xsl:element>
</xsl:template>

</rules>

我发现重氮可以在定义为 xsl:stylesheet (https://github.com/plone/diazo/blob/master/lib/diazo/normalize-rules.xsl)的文件中直接在规则中进行管理,但是如何在我的附加包中管理它?

谢谢

4

1 回答 1

0

如果您仍然遇到此问题,请尝试最新版本的 Diazo 和 plone.app.theming。

我无法使用最新版本(在 Plone 4.3.3 上)重现此问题。对我来说,您的规则示例工作得很好(只要它们在主[不是规则文件)中。

于 2014-08-09T05:30:09.900 回答