Pasar parámetros a XSLT Stylesheet a través de .NET

Estoy intentando pasar un parámetro a una hoja de estilo XSLT, pero todo lo que obtengo es un documento xml vacío cuando el documento se transforma utilizando XSlCompiledTransform.

Este es el método de C # utilizado para agregar los parámetros (después de agregar las sugerencias de las personas)

private static void CreateHierarchy(string manID) { string man_ID = manID; XsltArgumentList argsList = new XsltArgumentList(); argsList.AddParam("Boss_ID","",man_ID); XslCompiledTransform transform = new XslCompiledTransform(); transform.Load("htransform.xslt"); using (StreamWriter sw = new StreamWriter("output.xml")) { transform.Transform("LU AIB.xml", argsList, sw); } } 

y aquí está la hoja de estilos. El parámetro que paso es ‘Boss_ID’

        type="text/xsl" href="..\styles\orgcharts.xsl"                        

No puedo publicar todo el documento de entrada ya que es información confidencial, pero aquí hay una breve versión desinfectada

  

¿Alguien puede ayudar?

Gracias

XsltArgumentList definir el parámetro dentro de su XSLT y también debe pasar el XsltArgumentList como argumento a la llamada Transform :

 private static void CreateHierarchy(string manID) { string man_ID = manID; XsltArgumentList argsList = new XsltArgumentList(); argsList.AddParam("Boss_ID", "", man_ID); XslCompiledTransform transform = new XslCompiledTransform(true); transform.Load("htransform.xslt"); using (StreamWriter sw = new StreamWriter("output.xml")) { transform.Transform("LU AIB.xml", argsList, sw); } } 

Tenga en cuenta que xsl:param debe definirse debajo del elemento xsl:stylesheet :

 < ?xml version="1.0" encoding="utf-8"?>        

Este ejemplo simple de XSLT creará solo un pequeño documento de salida que contendrá un nodo XML con su contenido configurado en el valor de su parámetro. Pruebalo:

 < ?xml version="1.0" encoding="utf-8"?>          

probablemente necesite definir el parámetro en la parte superior del XSLT:

   //rest of the XSLT  

Ver este enlace

http://projects.ischool.washington.edu/tabrooks/545/2004Autumn/ContentManagement/PassingParameters.htm

No es un gran ejemplo, pero es lo mejor que pude encontrar con Google rápido.