2016-07-06 7 views
-2

こんにちは、XMLファイルがあり、xsltを使用して変換しようとしています。しかし、問題は、出力の前に白い線が表示されることです。私はそれを排除しますか? 以下は、私は上記を実行し、これまで私が最初にして出力白線を取得すると以下の私のxslxsltを使用しているcsv出力ファイルの空行

<?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> 

である私の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> 

です。

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

私はノード(ユーザー名、ユーザーIDなど)上記の空白を取得

答えて

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の間の改行を含む)。

+0

また、彼の 'xsl:for-each/@ select'で説明されなければならないデフォルトの名前空間についてOPに伝えてください。 – kjhughes

+0

同じことをしましたが、うまくいきませんでした。最初に空行とそれからデータを出力します –

+1

@ rockstar_77ここで動作しています:http://xsltransform.net/ej9EGdm - デフォルトの名前空間宣言を削除しましたあなたの入力から。 kjhughesによって上で述べたように、コードを使って要求された出力を受け取ることができませんでした。 –

関連する問題