XSLT 递归调用,XSLT 循环拆分

 

<xsl:call-template name="ClassRule">
        <xsl:with-param name="vClass" select="ns1:Class"/>
 </xsl:call-template>

-----------------------

  <xsl:template name="ClassRule">
    <xsl:param name="vClass" select="''"/>
   
    <xsl:if test="$vClass and string-length($vClass)>0">
      <class rule="中图分类">
        <xsl:choose>
          <xsl:when  test="contains($vClass,'%')">
            <xsl:value-of select="substring-before($vClass,'%')"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="$vClass"/>
          </xsl:otherwise>
        </xsl:choose>
      </class>
      <xsl:if  test="contains($vClass,'%')">
        <xsl:variable name="vClass2" select="substring-after($vClass,'%')"/>
        <xsl:call-template name="ClassRule">
          <xsl:with-param name="vClass" select="$vClass2"/>
        </xsl:call-template>

      </xsl:if>
    </xsl:if>
  </xsl:template>

--------------------------------

SampleIn:

<中图分类号>S88;S89%S86</中图分类号>

SampleOut:
  <class rule="中图分类">S88;S89</class>
  <class rule="中图分类">S86</class>
 

posted @ 2008-01-18 12:07  upzone  阅读(1164)  评论(2编辑  收藏  举报