0

我有一个 main.xsl。它调用 A.xsl 和 B.xsl,两者都使用相同的调用模板

<xsl:call-template name="setFormat">
  ...            
</xsl:call-template>

我想使用一次“setFormat”模板而不是在 A.xsl 和 B.xsl 中复制它,但是当“setFormat”只是在一个 xsl 中时,另一个说“命名的模板 'setFormat' 不存在”

xsl:include用来添加对 main.xsl 的引用

我应该怎么办?

我正在使用 MVS .Net 2005。

我正在使用 main.xsl,main.xsl 调用 A.xsl 和 B.xsl:

<xsl:include href="./A.xsl"/>
<xsl:include href="./B.xsl"/>

A.xsl 和 B.xsl 都使用名为“setFormat”的调用模板调用同一模板

“setFormat”不能在任何部分。因为如果它在 A.xsl 中,B.xsl 找不到它,因为它不在它的范围内,或者如果它在 main.xsl A.xsl 中,B.xsl 找不到它。我也不想复制它添加到 A.xsl 和 B.xsl

如何通过调用模板调用“setFormat”而不重复它?

4

1 回答 1

1

从您的问题中不清楚您的三个样式表中的哪个包含哪个。

我认为您的意思是您调用或处理您的文档的A.xslB.xsl一个。在这种情况下,您应该放入共享命名模板,以便在任何一种情况下都能看到它。xsl:include main.xslA.xslB.xslmain.xsl

另一方面,如果您的意思是main.xsl使用xsl:include两次,包括两者A.xslB.xsl并且您在文档上调用main.xsl,那么只有一个代码路径,并且命名模板可以在三个文件中的任何一个中。

于 2013-01-03T02:12:07.277 回答