我想指定自己的标签,例如:for my XSL Files,因为我有许多用于样式的冗余块:
<fo:block font-weight="bold" margin-bottom="1cm" color="#424242"> ... </fo:block>
所以我想要的是把这个<fo:block>
元素放在一个更短的标签中,这样我就不需要再次写这个,只有一个简单的标签。
我现在用谷歌搜索了几个小时,无法找到解决方案或者说“不可能”的人。
我希望你能帮助我!
答案 0 :(得分: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,则无法在select
中使用xsl:attribute
。
答案 1 :(得分:0)
编辑:删除了我最初的错误假设
您可以将一个XSLT包含在另一个XSLT中。因此,如果您有许多共享某些定义的模板,请将所有共享定义放入一个共享模板中,并使用<xsl:include>
来引用共享模板。
Information on include
答案 2 :(得分:0)
XSLT允许您将XML文档收集为树,然后将该树用作当前上下文。换句话说,您可以对正在使用的“宏”进行自己的预处理。
我建议你为宏创建一个命名空间,使调试过程更容易。