Pass parameter to XSLT stylesheet
23,522
Here is my XSLT:
<xsl:template match="/"> <xsl:param name="processingId"></xsl:param> ..HTML.. <xsl:value-of select="$processingId"/>
Am I missing something?
Yes, you are missing the fact that the invoker of an XSLT transformation can set the values of global-level parameters -- not the values of template-level parameters.
Therefore, the code must be:
<xsl:param name="processingId"/>
<xsl:template match="/">
..HTML..
<xsl:value-of select="$processingId"/>
<!-- Possibly other processing here -->
</xsl:template>
Author by
coson
Updated on June 06, 2020Comments
-
coson almost 4 years
I'm trying to pass a couple of parameters to an XSLT style sheet. I have followed the example: Passing parameters to XSLT Stylesheet via .NET.
But my transformed page is not correctly displaying the value.
Here is my C# code. I had to add a custom function to perform some arithmetic because Visual Studio 2010 doesn't use XSLT 2.0.
var args = new XsltArgumentList(); args.AddExtensionObject("urn:XslFunctionExtensions", new XslFunctionExtensions()); args.AddParam("processingId", string.Empty, processingId); var myXPathDoc = new XPathDocument(claimDataStream); var xslCompiledTransformation = new XslCompiledTransform(true); // XSLT File xslCompiledTransformation.Load(xmlReader); // HTML File using (var xmlTextWriter = new XmlTextWriter(outputFile, null)) { xslCompiledTransformation.Transform(myXPathDoc, args, xmlTextWriter); }
Here is my XSLT:
<xsl:template match="/"> <xsl:param name="processingId"></xsl:param> ..HTML.. <xsl:value-of select="$processingId"/>
Am I missing something?