我有一个相当大的 XSL 文件,其中包含很多模板。现在我需要将来自另一个 XSL 文件的模板附加到它。不幸的是,那里使用的一些模板名称与第一个文件中的模板名称相同。因此,如果我只是复制并粘贴它们,整个 XSL 就会损坏。
在追加之前重构第二个 XSL 文件的最简单方法是什么?我可以将其模板放入不同的命名空间或其他东西吗?
我有一个相当大的 XSL 文件,其中包含很多模板。现在我需要将来自另一个 XSL 文件的模板附加到它。不幸的是,那里使用的一些模板名称与第一个文件中的模板名称相同。因此,如果我只是复制并粘贴它们,整个 XSL 就会损坏。
在追加之前重构第二个 XSL 文件的最简单方法是什么?我可以将其模板放入不同的命名空间或其他东西吗?
如果您正在编写新代码,您可以将模板名称放在命名空间中。
如果代码已经存在,您可以编写一个新的转换来处理 XSLT 转换并替换任何
/*/xsl:template/@name
其值与 连接'_', $SomeSuffix
,其中$SomeSuffix
是全局/外部参数。
您可以使用相同的过程将模板的名称替换为名称空间中的名称,该名称作为参数给出。
如果您已命名模板(即template name="foo"
),那么可以,使用名称空间来区分它们,即<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:l1="http://example.com/l1" version="1.0"><xsl:template name="l1:foo">...</xsl:template></xsl:stylesheet>
。