Это возможно с .NET (я тестировал 4.0).Он работал со следующим кодом:
C #:
XslCompiledTransform proc = new XslCompiledTransform();
proc.Load(path + "test_parameter.xslt");
System.IO.TextWriter result = new StreamWriter(path + "result.html");
XmlDocument docA = new XmlDocument();
docA.Load(path + "documentA.xml");
XmlDocument docB = new XmlDocument();
docB.Load(path + "documentB.xml");
XsltArgumentList xsltArgs = new XsltArgumentList();
xsltArgs.AddParam("xmlDoc", "", docB);
proc.Transform(docA, xsltArgs, result);
XSLT:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- THIS FILE GENERATES A SIMPLE HTML -->
<xsl:output method="html" indent="yes"/>
<xsl:param name="xmlDoc" />
<xsl:template match="/document">
<xsl:apply-templates select="$xmlDoc/foo/bar"/>
</xsl:template>
</xsl:stylesheet>