XSL将模板应用于参数

时间:2016-02-11 22:10:21

标签: xslt

我有以下模板,用于删除撇号:

    <xsl:template name="replace">
      <xsl:param name="pText"/>  
      <xsl:param name="pTarget" select='"&apos;"'/>
      <xsl:param name="pReplacement" select='"\&apos;"'/>

      <xsl:if test="$pText">
       <xsl:value-of select='substring-before(concat($pText,$pTarget),$pTarget)'/>
       <xsl:if test='contains($pText, $pTarget)'>
         <xsl:value-of select="$pReplacement"/>  
       </xsl:if>

       <xsl:call-template name="replace">
        <xsl:with-param name="pText" select='substring-after($pText, $pTarget)'/>
        <xsl:with-param name="pTarget" select="$pTarget"/>
        <xsl:with-param name="pReplacement" select="$pReplacement"/>
       </xsl:call-template>
      </xsl:if>
     </xsl:template>

然后我有以下模板生成共享代码

    <xsl:template name="pageshare">              
        <xsl:param name="url"/>
        <xsl:param name="text"/>
        <xsl:call-template name="replace"><xsl:with-param name="pText" select="$text"/></xsl:call-template>
        <div class="extpageshare">
            <div class="social_icon gplus" onclick="shareSocial('google','{$text}','{$url}')"></div>
            <div class="social_icon twitter" onclick="shareSocial('twitter','{$text}','{$url}')"></div>
            <div class="social_icon facebook" onclick="shareSocial('facebookshare','{$text}','{$url}')"></div>
            <div class="social_icon pinterest" onclick="shareSocial('pinterest','{$text}','{$url}')"></div>   
            <div class="social_icon email" onclick="shareSocial('email','{$text}','{$url}')"></div>
        </div>
    </xsl:template>

我正在尝试在$text parameter so it can be escaped中应用斜杠功能。我尝试在共享代码对话框中调用它,但我不认为我正确地执行它。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果没有Minimal, Complete, and Verifiable example可以使用,很难回答您的问题。我想做

<xsl:template name="pageshare">              
    <xsl:param name="url"/>
    <xsl:param name="text"/>
    <xsl:variable name="escaped-text">
        <xsl:call-template name="replace">
            <xsl:with-param name="pText" select="$text"/>
        </xsl:call-template>
    </xsl:variable>
    <div class="extpageshare">
        <div class="social_icon gplus" onclick="shareSocial('google','{$escaped-text}','{$url}')"></div>
        <div class="social_icon twitter" onclick="shareSocial('twitter','{$escaped-text}','{$url}')"></div>
        <div class="social_icon facebook" onclick="shareSocial('facebookshare','{$escaped-text}','{$url}')"></div>
        <div class="social_icon pinterest" onclick="shareSocial('pinterest','{$escaped-text}','{$url}')"></div>   
        <div class="social_icon email" onclick="shareSocial('email','{$escaped-text}','{$url}')"></div>
    </div>
</xsl:template>