2016-11-02 13 views
-1

あなたは、XSLTには、以下のXSLT 2.0のコードを変換するために私を助けてもらえ1.0XSLT解析文字列の代替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> 

答えて

0

何このコードがやっていることのように見える何かをテキストで見ることです電子メールアドレスを入力し、マークアップを追加します。これを正規表現なしで行うのはかなり不可能ですが、あなたは近似を思いつくことができます(正規表現自体はおそらく真の電子メールアドレス構文の近似に過ぎません)。

ほとんどのXSLT 1.0エンジンは、正規表現を実行するために外部関数を呼び出すいくつかの方法を提供する可能性があります。実際にはXSLT 2.0を使用できない場合はおそらく最良のオプションです。したがって、使用しているXSLT 1.0プロセッサによって異なります。

(しかし、C#と.netには、多くのXSLT 2.0プロセッサがありますが、なぜまだ1.0を使用していますか)