2016-04-03 131 views
0

我有一個XML文件,爲此我必須將XSL框架化,以便我的ETL作業可以處理它。這是我需要的。輸出中缺少XSL 1.0換行符

輸入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> 

回答

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> 
+0

感謝您的快速反應,我試圖按預期工作,但是當我使用 我在實際值之前獲得了48個換行符。請任何解決方案.. –

+0

我不知道什麼是「48斷行」的意思。你可以看到上面的工作在這裏:http://xsltransform.net/gWvjQgi –

+0

麥克風,我應該重申的聲明,當我在XSL中使用 我在我的ETL作業過程後得到了領先和尾隨「換行符」 XML。當我使用時,我在我的ETL作業處理XML之後獲得了前導和尾隨「空間」。我需要幫助消除這些。 –