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>