ここで、動的に作成された xml を C# コードで渡して xslt に param として渡し、そこから値を取得する必要があります。
以下はサンプルの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 の値を取得できません ありがとう