XSLT1.0查找并重新发布

时间:2015-09-30 12:23:47

标签: xslt-1.0

我在使用XSL 1.0替换字符串中的字符串时遇到了一些问题。我已经在这个网站和其他网站上阅读过各种各样的主题,但是我无法理解为什么我的方法不起作用。出于这个问题的目的,我已经把数据贬低了一点但是你会得到清单,希望如此。

这是我的XML文件

<StatementReportOnlActivityByGame>
    <GameName>TESTMATCH5</GameName>
    <StatementReportOnlActivityByGameDetail>
        <DetailDesc>1ASALES TESTMATCH5</DetailDesc>
        <GrossAmount>18.000</GrossAmount>
    </StatementReportOnlActivityByGameDetail>
    <StatementReportOnlActivityByGameDetail>
        <DetailDesc>3AVALIDS TESTMATCH5</DetailDesc>
        <GrossAmount>10.000</GrossAmount>
    </StatementReportOnlActivityByGameDetail>
    <StatementReportOnlActivityByGameDetail>
        <DetailDesc>4ACOMMISSIONS TESTMATCH5</DetailDesc>
        <GrossAmount>0.000</GrossAmount>
    </StatementReportOnlActivityByGameDetail>
</StatementReportOnlActivityByGame>

要求:在输出中,我需要将TESTMATCH5替换为TESTMATCH F5

XSL文件是

<xsl:template name="string-replace-all">
    <xsl:param name="text" />
    <xsl:param name="replace" />
    <xsl:param name="by" />
    <xsl:choose>
        <xsl:when test="contains($text, $replace)">
            <xsl:value-of select="substring-before($text,$replace)" />
            <xsl:value-of select="$by" />
            <xsl:call-template name="string-replace-all">
                <xsl:with-param name="text" select="substring-after($text,$replace)" />
                <xsl:with-param name="replace" select="$replace" />
                <xsl:with-param name="by" select="$by" />
            </xsl:call-template>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="$text" />
        </xsl:otherwise> 
    </xsl:choose>
</xsl:template>      

调用模板

<xsl:cal-template name="string-replace-all">
    <xsl:with-param name="text" select="lsp:DetailDesc" />
    <xsl:with-param name="replace" select="TESTMATCH5" />
    <xsl:with-param name="by" select="'TESTMATCH F5'" />
</xsl:cal-template>

0 个答案:

没有答案