XSLT 用于执行某些类型转换时是非常理想的工具,但用于其它类型转换(例如,不常用字符串操作和迭代进程)时,却并不是非常理想。好在 Novell XSLT 处理程序配备了扩展功能,通过这些功能,样式表可以调用 Java 中实现的功能,还可以调用通过 JNI 访问的任何其它语言(通过扩展)。
有关特定的示例,请参见使用查询处理程序的上述示例,以及使用 Java 说明字符串操作的以下示例(特别长的行已换行且不以 < 开始)。
<!-- get-dn-prefix places the part of the passed dn that -->
<!-- precedes the last occurrence of ’\’ in the passed dn -->
<!-- in a result tree fragment meaning that it can be -->
<!-- used to assign a variable value -->
<xsl:template name="get-dn-prefix" xmlns:jstring="http://
www.novell.com/nxsl/java/java.lang.String">
<xsl:param name="src-dn"/>
<!-- use java string stuff to make this much easier -->
<xsl:variable name="dn" select="jstring:new($src-dn)"/>
<xsl:variable name="index" select="jstring:lastIndexOf
($dn,’\’)"/>
<xsl:if test="$index != -1">
<xsl:value-of select="jstring:substring($dn,0,$index)
"/>
</xsl:if>
</xsl:template>