You can use the function function-available() to determine which function you should use:
<xsl:choose>
<xsl:when test="function-available('exslt:node-set')">
<xsl:apply-templates select="exslt:node-set($nodelist)" />
</xsl:when>
<xsl:when test="function-available('msxsl:node-set')">
<xsl:apply-templates select="msxsl:node-set($nodelist)" />
</xsl:when>
<!-- etc -->
</xsl:choose>
You can even wrap this logic in a named template and call it with the nodeset as a parameter.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…