2011-08-16 108 views
0

我试图将符号转换为其HTML代码,例如'’与此代码:如何转换为HTML代码(“&something;”)

<xsl:variable name="apos">'</xsl:variable> 
<xsl:variable name="test">&rsquo;</xsl:variable> 

<xsl:value-of select='translate(title, $apos, $test)' /> 

这工作:

<xsl:variable name="test">&#39;</xsl:variable> 

但有可能使第一个例子中的工作?

回答

1

可以在XSLT 1.0使用递归:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="xml" indent="yes"/> 

    <xsl:template match="/"> 
     <xsl:variable name="apos">'</xsl:variable> 
     <xsl:variable name="test">&amp;rsquo;</xsl:variable> 
     <xsl:variable name="input">'sfdds'</xsl:variable> 

     <xsl:variable name="result"> 
      <xsl:call-template name="replace"> 
       <xsl:with-param name="input" select="$input"/> 
       <xsl:with-param name="value" select="$apos"/> 
       <xsl:with-param name="replacement" select="$test"/> 
      </xsl:call-template> 
     </xsl:variable> 

     <xsl:value-of select="$result" disable-output-escaping="yes"/> 

    </xsl:template> 


    <xsl:template name="replace"> 
     <xsl:param name="input"/> 
     <xsl:param name="value"/> 
     <xsl:param name="replacement"/> 

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

      <xsl:otherwise> 
       <xsl:value-of select="$input"/> 
      </xsl:otherwise> 
     </xsl:choose> 

    </xsl:template> 

</xsl:stylesheet> 

输出:

&rsquo;sfdds&rsquo; 
+0

@downvoter,小心点评? –

+0

当我尝试这样的事情时,我在客户端的HTML字面上说'’' – Cruncher

相关问题