Estoy tratando de pasar un par de parámetros a una hoja de estilos XSLT. He seguido el ejemplo: Passing parameters to XSLT Stylesheet via .NET.Pase el parámetro a la hoja de estilos XSLT
Pero mi página transformada no muestra correctamente el valor.
Aquí está mi código C#. Tuve que agregar una función personalizada para realizar algo de aritmética porque Visual Studio 2010 no usa 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);
}
Aquí es mi XSLT:
<xsl:template match="/">
<xsl:param name="processingId"></xsl:param>
..HTML..
<xsl:value-of select="$processingId"/>
Me estoy perdiendo algo?
¿Tiene '' en el nivel superior? Parece que define su parámetro dentro de una plantilla que creará un parámetro local. Para los parámetros externos, el parámetro debe ser global, por lo que debe definirse en el mismo nivel que xsl: template elements –
Pawel
No estoy seguro de lo que quiere decir en el nivel superior. La definición del parámetro está debajo del como pegué en mi pregunta. Encima de eso está la etiqueta . –
coson
Quise decir que no debería estar dentro de xsl: plantilla. Pruebe algo como esto: ' ... ' –
Pawel