我正在尝试向XSLT样式表传递一些参数。我按照这个例子进行了操作:通过.NET传递参数到XSLT样式表。但是我的转换页面没有正确显示值。以下是我的C#代码。由于Visual Studio 2010不使用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);
}
这是我的XSLT:
<xsl:template match="/">
<xsl:param name="processingId"></xsl:param>
..HTML..
<xsl:value-of select="$processingId"/>
我有什么遗漏吗?
<xsl:param name="processingId">
吗?看起来你在模板内定义了参数,这将创建一个局部参数。对于外部参数,参数必须是全局的,因此必须在与 xsl:template 元素相同的级别上定义。 - Pawel<xsl:stylesheet ...> <xsl:param name="processingId" /><xsl:template match="/"><xsl:value-of select="$processingId"/>...
- Pawel