XSL can be transformed programmatically as follows.
If you were using C#, you would add an argument to your transformation with the following code:
XsltArgumentList arguments = new XsltArgumentList();
arguments.AddParam("arg_name", "", "arg_value");
xslt.Transform(xmlDoc, arguments, str, null);
Using the values passed in is simple, all you need to do is declare the parameter and refer to the parameter with the name prefixed with a “$”:
<xsl:param name="arg_name" />
<xsl:value-of select="$arg_name" />