2016-07-06 4 views
-2

안녕하세요 저는 XML 파일을 가지고 있으며 xslt를 사용하여 변환하려고합니다. 하지만 문제는 내가 output.How 전에 흰색 선을 어떻게 그것을 제거합니까. 다음은 내가 위를 실행 이제까지 내가 먼저 한 후 출력 흰색 선을 얻을 때 아래에있는 내 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 

나는 (사용자 이름, 사용자 아이디 등) 노드 위의 공백을 얻을

답변

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

OP에 'xsl : for-each/@ select'에서 고려해야하는 기본 네임 스페이스에 대해서도 알려주십시오. – kjhughes

+0

나는 똑같은 짓을했으나 제대로 작동하지 않았다. 처음에는 빈 줄을 출력하고 그 다음 데이터는 –

+1

@ rockstar_77이 곳에서 작동하는 것을 볼 수있다. http://xsltransform.net/ej9EGdm - 기본 네임 스페이스 선언을 제거했다. 귀하의 의견을 위에서 kjhughes가 지적했듯이, 코드를 사용하여 출력을받을 수는 없습니다. –