xsl文本和普通字符串

时间:2014-01-06 05:03:40

标签: xslt xslt-1.0

之间有什么区别
    <xsl:param name="abc">123</xsl:param>
<xsl:param name="def"><xsl:text>123</xsl:text></xsl:param>

他们都工作相同,但两者之间存在一些差异。

2 个答案:

答案 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。]