0

我想为我的 XSL 文件指定自己的标签,例如:因为我有许多用于样式的冗余块:

<fo:block font-weight="bold" margin-bottom="1cm" color="#424242"> ... </fo:block>

所以我想要的是把这个<fo:block>元素放在一个更短的标签中,这样我就不需要一次又一次地写这个,并且只有一个简单的标签。

我现在用谷歌搜索了几个小时,找不到解决方案或说“不可能”的人。

我希望你能帮帮我!

4

3 回答 3

2

一个非常接近您想要的选项是使用xsl:attribute-set

例子:

<xsl:attribute-set name="headline">
    <xsl:attribute name="font-weight" select="'bold'"/>
    <xsl:attribute name="margin-bottom" select="'1cm'"/>
    <xsl:attribute name="color" select="'#424242'"/>
</xsl:attribute-set>

<xsl:template match="foo">
    <fo:block xsl:use-attribute-sets="headline">...</fo:block>
</xsl:template>

注意:如果您使用的是 XSLT 1.0,则不能selectxsl:attribute.

于 2013-10-28T04:09:19.340 回答
0

编辑:删除了我最初的错误假设

您可以将一个 XSLT 包含到另一个中。因此,如果您有许多共享某些定义的模板,请将所有共享定义放入一个共享模板中,并使用<xsl:include>来引用共享模板。 信息include

于 2013-10-16T14:03:27.893 回答
0

XSLT 允许您将 XML 文档收集为树,然后将该树用作当前上下文。换句话说,您可以对正在使用的“宏”进行自己的预处理。

我建议你为你的宏创建一个命名空间,使调试过程更容易。

于 2013-10-28T00:22:34.077 回答