有可能的。在 XSLT 2.0 中,这将是一件轻而易举的事(使用正则表达式)。但是,这是 XSLT 1.0 中直接的“你所说的”脚本:
<xsl:template match="/">
<xsl:call-template name="process">
<xsl:with-param name="text" select="/tutorial/MT/@V"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="process">
<xsl:param name="text" select="."/>
<xsl:variable name="modtext" select="translate($text,'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ','aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')"/>
<xsl:variable name="pretext" select="substring-before($modtext,'<a')"/>
<xsl:choose>
<xsl:when test="not($pretext)">
<xsl:value-of select="$text"/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="endpos" select="string-length($pretext)+1"/>
<xsl:value-of select="concat(substring($text,1, $endpos),' ')"/>
<xsl:call-template name="process">
<xsl:with-param name="text"
select="substring($text,$endpos+1)"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
它会产生您所要求的内容,尽管它对数字和 / 字符的行为很有趣。
它产生:
Centre-of-mass energies in the region 142< W< sub>γp</sub><293 GeV with the ZEUS detector at HERA using an integrated luminosity
显然,如果您使用 / 和 1234567890 更新翻译,它也会处理数字和斜杠。