输出中缺少XSL 1.0换行符

时间:2016-04-03 16:49:49

标签: xslt-1.0

我有一个XML文件,我必须为其构建XSL,以便我的ETL作业可以处理它。这就是我需要的。

输入XML

<FS_Sub_Investment_Team>
    <Report Name="REPORT">
        <MeetTheTeamTableHeading Label="TEAM" />
        <MeetTheTeamTable>
            <Rows>
                <Row ManagerData="ABC EFGHI XYZ" />
                <Row ManagerData="ABC PQRST XYZ" />
            </Rows>
        </MeetTheTeamTable>
        <MeetTheTeamNote></MeetTheTeamNote>
    </Report>
</FS_Sub_Investment_Team>

当前XSL:

<xsl:template match="/">
    <Bio>
        <BioText>
            <xsl:apply-templates select="//Row/@ManagerData" mode="concat"/>
        </BioText>
    </Bio>
</xsl:template>

当前输出:

<Bio><BioText>ABC EFGHI XYZABC PQRST XYZ</Bio></BioText>

我的预期输出是:在两个元素值之间有空格的换行符(或),请给我两个解决方案。

<Bio><BioText>ABC EFGHI XYZ
ABC PQRST XYZ</Bio></BioText>

1 个答案:

答案 0 :(得分:0)

尝试:

<xsl:template match="/">
    <Bio>
        <BioText>
            <xsl:for-each select="//Row">
                <xsl:value-of select="@ManagerData" />
                <xsl:if test="position()!=last()">
                    <xsl:text>&#10;</xsl:text>
                </xsl:if>
            </xsl:for-each>
        </BioText>
    </Bio>
</xsl:template>

要插入空格而不是新行,请使用:

<xsl:text> </xsl:text>

而不是:

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