+ <xslt:template match="html:script[@type]" mode="书社:parse" priority="1">
+ <xslt:variable name="parserdiv" select="exsl:node-set($书社:parsers)//html:div[html:dd=current()/@type]"/>
+ <xslt:choose>
+ <xslt:when test="$parserdiv">
+ <xslt:variable name="result">
+ <xslt:apply-templates select="."/>
+ </xslt:variable>
+ <xslt:variable name="reparsed-result">
+ <xslt:apply-templates select="exsl:node-set($result)/node()" mode="书社:parse"/>
+ </xslt:variable>
+ <xslt:call-template name="书社:apply-parsed-by">
+ <xslt:with-param name="id" select="$parserdiv/html:dt"/>
+ <xslt:with-param name="result" select="exsl:node-set($reparsed-result)"/>
+ </xslt:call-template>
+ </xslt:when>
+ <xslt:otherwise>
+ <xslt:apply-templates select="."/>
+ </xslt:otherwise>
+ </xslt:choose>
+ </xslt:template>
+ <xslt:template match="@*|node()" mode="书社:parse">
+ <xslt:apply-templates select="."/>
+ </xslt:template>