2

我不确定为什么我的 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,

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

4

3 回答 3

10

尝试更换

&#10;

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

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

于 2013-01-29T17:22:03.807 回答
9

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

我建议替换这些行:

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

有了这个:

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

这样,应该确保换行符包含在输出中。

于 2013-01-29T17:25:53.690 回答
0

尝试将其用作换行符而不是转义字符:

<xsl:text>
</xsl:text>
于 2013-01-29T17:24:32.773 回答