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>