Using the Libxslt Extension Modules
The extension modules are installed in libxslt's plugin directory, for example
/usr/lib/libxslt-plugins. Extension modules placed there will be located
automatically by libxslt or any program that uses it such as xsltproc.
Usage
Usage is straightforward. The documentation for each extension element or
function includes the namespace URI to be used. This is declared in the
<xsl:stylesheet> element in the usual way and the prefix is listed in the
extension-element-prefixes attribute.
Important
Remember to add the prefix to extension-element-prefixes since this tells
libxslt to load the plugin referenced by the associated URI. Forgetting to
do this can be a frustrating source of errors in your stylesheet.
For example if the prefix is ext and the URI is https://iarthair.github.io/xpfunctions
they are declared in the XSL-T stylesheet follows as:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ext="https://iarthair.github.io/xpfunctions"
extension-element-prefixes="ext">
...
</xsl:stylesheet>
XPath functions may then be referenced via the namespace prefix in the usual
way, for example to call the string-join() function:
<xsl:template match="*">
<xsl:value-of select="ext:string-join(*,' + ')"/>
</xsl:template>
Similar considerations apply for extension elements.
Non-standard Installation
If installation is made to a non-standard plugin directory, set the environment
variable LIBXSLT_PLUGINS_PATH to point to the appropriate directory. Note
that this is not a colon separated list of directories, only a single directory
may be specified. For example:
$ LIBXSLT_PLUGINS_PATH=/path/to/modules xsltproc ss.xsl file.xml