<xsl:output method =“text”>产生一些不需要的输出</xsl:output>

时间:2014-12-02 12:23:34

标签: text methods output xslt-1.0

我向客户提供了许多.xslt(XSLT 1.0)文件,用于生成电子邮件正文。它们的设计和提供<xsl:output method="**html**" />,一切都很好。

客户被告知,如果他们的邮件系统无法处理HTML,他们只需将.xslt文件更改为<xsl:output method="**text**" />即可。一切都很好。现在我已更改,以便模板包含CSS style声明,如:

<style>
body { font-family: Verdana, Arial, Sans-Serif; font-size: 10pt; }
</style>

虽然text输出方法正确地知道要省略<style>标记行,但输出文本最后会带有body { font-family: Verdana, Arial, Sans-Serif; font-size: 10pt; },这在文本邮件内容中显然是不可取的!

  • 我可以对该片段做些什么来防止它在method="text"时输出? (我对此表示怀疑。)

  • 或者,<xsl:if test="..."是否可以访问输出方法,以便我可以省略文本?

1 个答案:

答案 0 :(得分:1)

正如我在评论中所说,我认为这不是一个好方法 - 但是可以通过使用以下表达式来获取输出方法的值:

document('')/*/xsl:output/@method