I have a xsl file where i need to use parameters from an external source. I am using Java and my code looks something like this:
TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer xsltTransformer = transformerFactory.newTransformer(xsltSource); xsltTransformer.setParameter(parameterName, parameterValue);
However, an exception is thrown at the 2nd line - Variable or parameter 'variable_name' is undefined. I realize that XSL is compiled and is probably compiled when the transformer is created.
So, how do i pass parameters to my transformation? How is the setParameter method supposed to be used?
If you pass a parameter like:
transformer.setParameter("render_id", "1234");
the parameter can be picked up by the transform:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > <xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="yes"/> <!-- Receives the id of the menu being rendered. --> <xsl:param name="render_id" />
rsp's answer was spot on. Thanks. Just want to add that you cannot pass a parameter to a variable in the same way (I am setting parameters via Java's TransformerFactory).
I made the mistake of thinking variables and params were interchangeable :)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With