2017-02-16 17 views
0

У меня есть таблица стилей xslt для импорта XML-файла. Существует цикл, в котором конкатенация дочернего узла с именем «Примечание». Я пытаюсь получить каждый нотный узел, разделенный новой строкой, но я не могу понять, какой символ ввести. Заранее спасибо за помощь. Вот мой код:Новый разделитель строк для xslt/xml

XSLT
<xsl:if test="Note"> 
    <xsl:call-template name="join"> 
     <xsl:with-param name="list" select="Note" /> 
     <xsl:with-param name="separator" select="';'" /> 
    </xsl:call-template> 
</xsl:if> 

<xsl:template name="join"> 
    <xsl:param name="list" /> 
    <xsl:param name="separator"/> 

    <xsl:for-each select="$list"> 
     <xsl:value-of select="." /> 
     <xsl:if test="position() != last()"> 
      <xsl:value-of select="$separator" /> 
     </xsl:if> 
    </xsl:for-each> 
</xsl:template> 

XML Node:

<App action="A" id="65806"> 
     <BaseVehicle id="6664"/> 
     <BodyType id="5"/> 
     <Note>Upgrade</Note> 
     <Note>replacement unit comes with a new dustcover/bumper assembly.</Note> 
     <Qty>2</Qty> 
     <PartType id="7584"/> 
     <Position id="30"/> 
</App> 

Ожидаемый результат

В настоящее время ...

Upgrade;replacement unit comes with a new dustcover/bumper assembly. 

Пытаясь заставить его выглядеть ...

Upgrade 
replacement unit comes with a new dustcover/bumper assembly. 
+0

Возможный дубликат [Производство новой строки в XSLT] (HTTP: //stackoverflow.com/questions/723226/producing-a-new-line-in-xslt) – SaggingRufus

+2

Пожалуйста, разместите ** воспроизводимый пример **, включая вход XML и ожидаемый результат - см. [mcve]. –

+0

@SaggingRufus - Пробовал это, не работал. – Paully

ответ

0

Вы до сих пор не показали нам XSLT мы можем работать как есть. Я предполагаю, что вы хотите изменить:

<xsl:with-param name="separator" select="';'" /> 

к:

<xsl:with-param name="separator" select="'&#10;'" /> 

или, возможно (для Windows):

<xsl:with-param name="separator" select="'&#13;&#10;'" /> 
+0

Это сработало! Благодарю. – Paully

+0

Не пытайтесь вывести ' ' - он будет явно отображаться в сериализованном виде как ' ' или ' '. –

+0

@MichaelKay Это не то, что я вижу. http://xsltransform.net/jz1PuPW –