Revision [695]
This is an old revision of XPathExtension made by DavidLee on 2009-08-27 11:04:12.
XPath Extensions
With Version 0.1.0.0 an XPath extension is available in xmlsh which allows calling into xmlsh from with any xpath context including xpath, xlst, xquery, and the builtin <[ ... ]> commands.
To use this extension you need to use the saxon syntax for binding java extensions to saxon. (Note: this may change in the future, in particular if xmlsh is upgraded to use Saxon 9.2).
The java class to import is org.xmlsh.xpath.XPathFunctions
This can be done in the shell, or within an xslt or xquery script itself by using "declare namespace"
Example
declare namespace xmlsh=java:org.xmlsh.xpath.XPathFunctions
Extension functions implemented
eval
The eval xpath function evaluates its first argument as an xmlsh string (identical to the eval command) and optionally its second argument as positional parameters. The return value of the eval function is the standard output of the command.
Examples
declare namespace xmlsh=java:org.xmlsh.xpath.XPathFunctions xecho <[ xmlsh:eval("xecho $*" , ("foo" , <bar/> , 1 ) ) ]> xquery -n 'xmlsh:eval("xls")' xpath -n 'xmlsh:eval("xls $*" , "*.xml")' var=<[ xmlsh:eval("xls") ]>