xslt / xml的新行分隔符

时间:2017-02-16 17:53:51

标签: xml xslt

我有一个用于导入XML文件的xslt样式表。有一个循环就是连接一个名为“Note”的子节点。我试图让每个音符节点被一个新行分隔,但我无法弄清楚要输入的字符。在此先感谢您的帮助。这是我的代码:

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节点:

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

1 个答案:

答案 0 :(得分:1)

您仍然没有向我们展示我们可以按原样运行的XSLT。我想你想改变:

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

为:

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

或可能(对于Windows):

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