之间有什么区别
<xsl:param name="abc">123</xsl:param>
<xsl:param name="def"><xsl:text>123</xsl:text></xsl:param>
他们都工作相同,但两者之间存在一些差异。
答案 0 :(得分:1)
&LT; XSL:文本&GT;将允许您操作文本(转义以及空格):
<xsl:text disable-output-escaping="yes|no">
来自http://msdn.microsoft.com/en-us/library/ms256107(v=vs.110).aspx:
在样式表中,可以为文字结果树生成文本 有或没有&lt; xsl:text&gt;。但是,使用此元素可以发挥作用 对样式表创建的空白区域进行一些控制。对于 例如,为了使您的样式表更具可读性,您可能希望这样做 在模板中每行写一个元素,并缩进一些行。干 因此,引入空格作为模板规则的一部分。这可能或 可能不是转型的理想效果。有时你 可能想要引入一个空格字符来分隔两个数据 值。您可以使用&lt; xsl:text&gt;要做到这一点的要素。白色 &lt; xsl:text&gt;中包含的空格输出到结果树。
答案 1 :(得分:0)
使用<xsl:text>
的主要原因是空格的文本XSLT样式表通常被丢弃/剥离(http://www.w3.org/TR/xslt#strip)。括在<xsl:text>
中的文本是该规则的例外。因此,如果要显式输出空格,制表符或换行符,可能需要使用<xsl:text>
<xsl:text>
还允许逐项控制输出转义模式。那种使用频率较低;除非您生成非XML /非HTML输出,否则禁用输出转义通常是错误的解决方案。
[对于混乱的道歉,现在在上面纠正了。我刚刚注意到我确实在查看XSLT 1.0的工作草案,而不是最终的RECcomendation。 Mea culpa,mea culpa,mea maxima culpa。]