我需要使用非常适合正则表达式的 XSLT 1.0 执行查找和替换。不幸的是,这些在 1.0 中不可用,而且由于无法更改安全设置,我也无法使用任何扩展库,例如 EXSLT。
我正在使用的字符串如下所示:
19;#John Smith;#17;#Ben Reynolds;#1;#Terry Jackson
我需要将数字和; #
字符替换为,
. 例如,上面将更改为:
John Smith, Ben Reynolds, Terry Jackson
我知道需要一个递归字符串函数,可能使用子字符串和翻译,但我不知道从哪里开始。
有人对如何解决这个问题有一些指示吗?这是我开始的:
<xsl:template name="TrimMulti">
<xsl:param name="FullString" />
<xsl:variable name="NormalizedString">
<xsl:value-of select="normalize-space($FullString)" />
</xsl:variable>
<xsl:variable name="Hash">#</xsl:variable>
<xsl:choose>
<xsl:when test="contains($NormalizedString, $Hash)">
<!-- Do something and call TrimMulti -->
</xsl:when>
</xsl:choose>
</xsl:template>