Using Script Extensions in Xalan-Java - Python
(Page 5 of 8 )
Python support is based on the Java Python Interpreter Jython version 2.1 from http://www.jython.org.
Configuration
Ensure that the jython.jar file is in the classpath used by the XSLT processor.
Simple Function without a JavaBean Parameter
The function below shows how a Python script is used to calculate the surname output element using the name input element value.
def calculate_surname( name ) :
return name.split(" " )[1]
The XSLT function call is
<xsl:value-of select="jpython:calculate_surname( string(name) )"/>
Note that for the in-line Python script, the def statement must start in column 0, otherwise a fault occurs during the Python script compilation.
Function with JavaBean Processing
The function below shows how a Python script is used to calculate the bonus value, in a similar fashion as described above in the JavaScript section.
def calculate_bonus( quota, actual, bonusplan, bonus_table ) :
""" find base bonus from lookup table """
bonus_base = long ( bonus_table.lookUp(bonusplan,1), 10 )
""" calculate multiple, bonus multiple is zero if they underperform """
if actual > quota :
multiple = actual / quota
return multiple * bonus_base
else :
return 0.0
Again, the def keyword must start in column 0. Also, in Jython, blocks are determined by indentation and therefore must be preserved in the stylesheet. JavaBean handling is exactly the same for both Jython and JavaScript.
The XSLT function call is:
<xsl:value-of select="jpython:calculate_bonus( number(quota), number(actual), string(bonusplan), $bonus_table )"/>
Next: VBScript >>
More XML Articles
More By Seamus Donohue