1.0版本中的XSLT分析字符串替代方案

本文关键字:字符串 方案 XSLT 版本 | 更新日期: 2023-09-27 18:15:50

您能帮我把下面的XSLT 2.0代码转换成XSLT 1.0吗

    <xsl:template match="text()">
    <xsl:analyze-string select="." regex="'s*'w+([-+.'_%]'w+)*@'w+([-.]'w+)*'.'w+([-.]'w+)*'s*">
        <xsl:matching-substring>
            <a href="mailto:{.}">
                <xsl:value-of select="." disable-output-escaping="no"/>
            </a>
        </xsl:matching-substring>
        <xsl:non-matching-substring>
            <xsl:value-of select="." disable-output-escaping="no"/>
        </xsl:non-matching-substring>
    </xsl:analyze-string>
</xsl:template>

1.0版本中的XSLT分析字符串替代方案

这段代码所做的是在文本中查找看起来像电子邮件地址的东西,然后在这种情况下添加标记。在没有正则表达式的情况下做到这一点几乎是不可能的,尽管您可以提出某种近似(正则表达式本身可能只是真实电子邮件地址语法的近似)。

大多数XSLT 1.0引擎都可能提供一些调用外部函数来执行正则表达式的方法,如果您确实不能使用XSLT 2.0,这可能是您最好的选择。因此,这取决于您使用的XSLT 1.0处理器。

(但是在c#和。net中,有很多好的XSLT 2.0处理器,为什么还在使用1.0呢?)