您好我有一个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,'
')"/>
</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等)
答案 0 :(得分:2)
使用xsl:text
输出文字文字,例如:
<xsl:template match="/">
<xsl:text>UserName,Userid,address,city,state,zip
</xsl:text>
<xsl:for-each select="//User">
<xsl:value-of select="concat(UserName,',',Userid,',',address,',',city,',',state,',',zip,'
')"/>
</xsl:for-each>
</xsl:template>
现在,您可以将整个文本节点写入输出 - 包括<xsl:template match="/">
和UserName
之间的换行符。