我在这里进行了修复,我必须将 C# 代码中动态创建的 xml 作为参数传递给 xslt,然后从中获取值。
以下是示例 xslt
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt"
version="1.0">
<xsl:param name="Keys"></xsl:param>
<xsl:template match="/">
<MyKey>MYNODE</MyKey>
<xsl:value-of select="msxsl:node-set($Keys)/Keys/Item/Header"/>
</xsl:template>
</xsl:stylesheet>
然后从 C# 中的代码我调用 Transform 方法
XslCompiledTransform proc = new XslCompiledTransform();
proc.Load("sheet.xslt");
XsltArgumentList xsltArgs = new XsltArgumentList();
XmlDocument doc1 = new XmlDocument();
// populate as needed e.g.
doc1.LoadXml("<Keys><Item><Header>fooHeader</Header></Item></Keys>");
xsltArgs.AddParam("Keys", "", doc1.InnerXml.ToString());
// pass xsltArgs as second argument to Transform method
proc.Transform(someInput, xsltArgs, someOutput);
在这里,我无法在结果中获得 MYNODE 的值谢谢