XSLT输出参数

本文关键字:参数 输出 XSLT | 更新日期: 2023-09-27 17:50:37

我已经熟悉将输入参数传递给XSLT CompiledTransformation类,以便解析器在处理XSL文件中提供的指令时使用参数来处理XSL文件。

是否有一种方法,我们可以get output param(说节点的值或其他东西)从XSLT到主机语言,如c# ?

XslCompiledTransform xslTransform = new XslCompiledTransform();
string strXmlOutput = string.Empty;
StringWriter swXmlOutput = null;
MemoryStream objMemoryStream = null;
XPathDocument xpathXmlOrig = new XPathDocument(string_xmlInput);
swXmlOutput = new StringWriter();
objMemoryStream = new MemoryStream();
xslArg.AddParam("TESTING", "", SomeVar);
XsltSettings xslsettings = new XsltSettings(false, true);
xslTransform.Load(string_xslInput, xslsettings, new XmlUrlResolver());
xslTransform.Transform(xpathXmlOrig, xslArg, objMemoryStream);

这段代码确实输出转换后的XML,但我的问题是,我们可以从XSL转换(XSLT文件)只取一个值作为输出参数吗??

像这样:

xslArg.OutputParam("testing"); //Something like this?
........
........
xslTransform.Transform(xpathXmlOrig, xslArg, objMemoryStream);
string outputparam = xslArg.GetParam("testing"); //ideal way of getting param after traformation!

XSLT是否为这样的事情提供了作用域?

XSLT输出参数

在c#中,您最好的选择是将<xsl:message>指令放入XSLT代码中,并hook到XsltArgumentList类上的xsltmessageencounter事件。

你可以通过观察应用程序的输出来测试它是否为你提供了正确的输出,而不需要挂钩事件——在没有事件处理程序的情况下,消息被管道输送到标准输出。