替换XSLT中的“换行”

时间:2018-09-05 12:06:25

标签: xml xslt

有一个如下所示的XML标记。

<inputT>This is line one
  This is line two.
  This is line three.</inputT>

我想使用XSLT从该XML文件创建JSON文件。并且,上述XML元素的相关JSON字段应如下所示。

"output": "This is line one###This is line two.###This is line three."

我尝试使用下面的XSLT命令来实现这一目标。

<xsl:text>"output":"</xsl:text>
    <xsl:variable name="inputText" select="inputT"/>
    <xsl:value-of select="replace($inputText, '&#10;', '###')" />
<xsl:text>"</xsl:text>

但是它没有给出预期的结果。如何改善我的xslt代码以实现目标?

1 个答案:

答案 0 :(得分:0)

<xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>
    <xsl:template match="inputT">
        <xsl:text>"output":"</xsl:text> <xsl:if test="matches(.,'\n')">
            <xsl:value-of select="replace(.,'\n    ',' ')"/>
        </xsl:if><xsl:text>"</xsl:text>
    </xsl:template>
You may try like this