以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  xsl:calll-template的问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=59032)


--  作者:jianren719
--  发布时间:2/21/2008 6:36:00 PM

--  xsl:calll-template的问题
src.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" exclude-result-prefixes="fo">
<xsl:template match="vertical">
   <xsl:element name="fo:block">
    <xsl:variable name="newstr">
      <xsl:choose>
       <xsl:calll-template name="replace">
        <xsl:with-param name="str" select="*|text()" />
        <xsl:with-param name="regexp" select="​"  />
        <xsl:with-param name="replacement" select="/>
       </xsl:calll-template>

      </xsl:choose>
     </xsl:variable>
     <xsl:apply-templates select="{$newstr}" />
    </xsl:element>

 </xsl:template>

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

</xsl:stylesheet>
原意是想将原文本中的“​”替换成“” 可是实际结果"{$newstr}" 整个都变成了空的 请各位大大帮忙看看 谢谢了


--  作者:孤独
--  发布时间:2/22/2008 3:24:00 PM

--  
​是不是在XSL中已经转意了呢?
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms