我有一个关于 XSLT 导入/包含的有趣问题。
我有 2 个具有相同规则的 XSLT 文件。
收据 XSLT:(自行运行)
<xsl:template match="Booking" mode="extraStyle">
<link rel="stylesheet" href="../css/receipt.css" type="text/css" media="screen"/>
</xsl:template>
EmailCommon XSLT:(用作电子邮件文档的模板库,不自行运行)
<xsl:template match="Booking" mode="extraStyle">
<link rel="stylesheet" href="../css/email.css" type="text/css" media="screen"/>
</xsl:template>
因此,根据文档类型,我插入正确的 CSS 文件。
我要做的是将这两个文档包含到另一个 XSLT 中:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
exclude-result-prefixes="msxsl"
version="1.0">
<xsl:include href="receipt.xsl"/>
<xsl:include href="email.xsl"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
尽管如此,由于两个包含的样式表中的规则相同,因此归结为 Last-in-first 规则,我最终只包含 email.css。
我想知道在这种情况下是否可以做一些聪明的事情?
我唯一想到的是使用不同的模式,但它不会那么直观,而是积累所有相同规则的代码。不知道如何以及是否可以在 XSLT 中完成。
感谢帮助!
PS对不起,我真的很想了解这个网站上的格式规则,但我根本做不到:( gggrrr