使用xslt在csv输出文件中的空行

时间:2016-07-06 18:24:25

标签: java csv xslt

您好我有一个XML文件并尝试使用xslt进行转换。但问题是我在输出之前得到一条白线。我如何消除它。 下面是我的XML

<?xml version="1.0" encoding="UTF-8"?>
<UserInfo xmlns="http://XXXXXX">
    <User>
            <UserName>MNO</UserName>
            <Userid>1234</Userid>
            <address>xyz</address>
            <city>ABC</city>
            <state>XX</state>
            <zip>000000</zip>
    </User>
    <User>
            <UserName>DEF</UserName>
            <Userid>4567</Userid>
            <address>IJK</address>
            <city>GHI</city>
            <state>XX</state>
            <zip>000000</zip>
    </User>

</UserInfo>

下面是我的xsl

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" >
<xsl:output method="text" omit-xml-declaration="yes" indent="no"/>
<xsl:template match="/">
UserName,Userid,address,city,state,zip
<xsl:for-each select="//User">
<xsl:value-of select="concat(UserName,',',Userid,',',address,',',city,',',state,',',zip,'&#xA;')"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

当我运行上述内容时,首先获得一条白线然后输出。

vendorName,vendorId,vendorTaxId,addressLine1,addressLine2,city,state,zip
MNO,1234,xyz,ABC,XX,000000
DEF,4567,IJK,GHI,XX,000000

我得到节点上方的空白区域(UserName,UserId等)

1 个答案:

答案 0 :(得分:2)

使用xsl:text输出文字文字,例如:

<xsl:template match="/">
    <xsl:text>UserName,Userid,address,city,state,zip&#xA;</xsl:text>
    <xsl:for-each select="//User">
        <xsl:value-of select="concat(UserName,',',Userid,',',address,',',city,',',state,',',zip,'&#xA;')"/>
    </xsl:for-each>
</xsl:template>

现在,您可以将整个文本节点写入输出 - 包括<xsl:template match="/">UserName之间的换行符。