2016-04-03 7 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

Try:

<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

Mic, я должен повторить заявление, когда я использую в XSL. Я получаю ведущие и отстающие «разрывы строк» ​​после моего процесса работы с ETL XML. Когда я использую , я получаю ведущее и отстающее «пространство» после моего процесса работы с ETL XML. Мне нужна помощь в их устранении. –

Смежные вопросы