不在我的XSLT中添加新行

时间:2013-01-29 17:19:36

标签: xslt newline

我不确定为什么我的xslt不会在我的输出中添加新行... 这是我的xslt ....

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
  <xsl:output method="text" encoding="iso-8859-1"/>
  <xsl:variable name="newline"></xsl:variable>
  <xsl:template name="FairWarningTransform" match="/">    <!--@* | node()">-->

          <xsl:for-each select="//SelectFairWarningInformationResult">  

                <xsl:value-of select="ApplicationID"/>,<xsl:value-of select="USERID"/>
                &#10;
          </xsl:for-each>

        * Note.  This report outlines Fair warning entries into reported for the above time frame.

      </xsl:template>
</xsl:stylesheet>

这是我的输出......

1,TEST1,test2,

我希望它看起来像......

1,TEST
1,test2,

为什么不是这个角色  创建换行符

3 个答案:

答案 0 :(得分:9)

尝试替换

&#10;

<xsl:text>&#10;</xsl:text>

这有助于XSLT将其与样式表中作为样式表格式(不是所需输出的一部分)一部分的其他空格区分开来。

答案 1 :(得分:9)

XSLT的默认行为是忽略样式表中完全是空白的任何文本节点(即使某些空格被编码为像&#10;这样的实体也是如此),<xsl:text>中的文本除外,保留。

我建议更换这些行:

<xsl:value-of select="ApplicationID"/>,<xsl:value-of select="USERID"/>
&#10;

用这个:

<xsl:value-of select="concat(ApplicationID, ',', USERID, '&#10;')"/>

这样就可以确保换行符包含在输出中。

答案 2 :(得分:0)

尝试将此作为换行符而不是转义字符:

<xsl:text>
</xsl:text>