Sto provando a passare un paio di parametri a un foglio di stile XSLT. Ho seguito l'esempio: Passing parameters to XSLT Stylesheet via .NET.Passare il parametro al foglio di stile XSLT
Ma la mia pagina trasformata non mostra correttamente il valore.
Ecco il mio codice C#. Ho dovuto aggiungere una funzione personalizzata per eseguire alcune operazioni aritmetiche perché Visual Studio 2010 non utilizza 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);
}
Ecco il mio XSLT:
<xsl:template match="/">
<xsl:param name="processingId"></xsl:param>
..HTML..
<xsl:value-of select="$processingId"/>
mi sto perdendo qualcosa?
Avete '' al livello più alto? Sembra che tu definisca il tuo parametro all'interno di un modello che creerà un parametro locale. Per i parametri esterni il parametro deve essere globale, quindi deve essere definito allo stesso livello di xsl: elementi modello –
Pawel
Non sono sicuro di cosa intendi al livello principale. La definizione del parametro è inferiore a come ho incollato nella mia domanda. Al di sopra è il tag . –
coson
Intendevo dire che non dovrebbe essere contenuto in xsl: template. Prova qualcosa del tipo: ' ... ' –
Pawel