如何使用XSLT 1.0省略嵌套圆支架内部的字符串



我有一个节点

<statement> 
     SORBITOL, ARÔMES ARTIFICIELS, DIOXYDE DE SILICIUM, ASPARTAME (05 mg / PIECE (01 g)), ACESULFAME-POTASSIUM (03 mg / PIECE (01 g)), STEARATE DE MAGNESIUM. L'ASPARTAME CONTIENT DE LA PHENYLALANINE.
</statement>

我需要将其转换为:

<statement>SORBITOL, ARÔMES ARTIFICIELS, DIOXYDE DE SILICIUM, ASPARTAME , ACESULFAME-POTASSIUM , STEARATE DE MAGNESIUM. L'ASPARTAME CONTIENT DE LA PHENYLALANINE.</statement>

因此,我需要一个函数,该函数将递归中的圆形支架内部的字符串除外,以便如果圆形支架的更多嵌套呈现,则该功能应通过省略支架和支架内的刺激来返回字符串。我在XSLT版本1.0中需要它。

尝试以下:

XSLT 1.0

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output indent="yes"/>
    <xsl:template match="statement">
        <xsl:copy>
            <xsl:call-template name="removeRoundBracket">
                <xsl:with-param name="data" select="normalize-space(.)"/>
            </xsl:call-template>
        </xsl:copy>
    </xsl:template>
    <xsl:template name="removeRoundBracket">
        <xsl:param name="data"/>
        <xsl:choose>
            <xsl:when test="contains(substring-before($data, ')'), '(')">
                <xsl:value-of select="substring-before($data, '(')"/>
                <xsl:call-template name="removeRoundBracket">
                    <xsl:with-param name="data" select="substring-after($data, ')')"/>
                </xsl:call-template>
            </xsl:when>
            <xsl:when test="contains($data, ')')">
                <xsl:call-template name="removeRoundBracket">
                    <xsl:with-param name="data" select="substring-after($data, ')')"/>
                </xsl:call-template>
            </xsl:when>
            <xsl:otherwise>
                <xsl:value-of select="$data"/>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>
</xsl:stylesheet>

请参阅http://xsltransform.net/93nvfck

的转换

输出

<statement>SORBITOL, ARÔMES ARTIFICIELS, DIOXYDE DE SILICIUM, ASPARTAME , ACESULFAME-POTASSIUM , STEARATE DE MAGNESIUM. L'ASPARTAME CONTIENT DE LA PHENYLALANINE.</statement>

相关内容

  • 没有找到相关文章