I also have the same problem, in moving from MSXML to .NET native XSLT processing.
There is a bug in .NET 2.0 that makes it impractical to use:
<msxsl:script implements-prefix="user" language="jscript">
<![CDATA[
function selectNodes(nsetCtxt, strExpr)
{
// Evaluating strExpr must result in a node-set(unfortunately there is currently no evalExpr method on the MSDOM)
// If strExpr is not specified then just try to search for anything.
if (strExpr == '') strExpr='zzz_will_not_be_found_zzz';
return nsetCtxt.nextNode().selectNodes(strExpr);
}
]]>
</msxsl:script>
and use compiled XSLT (it memory leaks HUGE) (http://blogs.msdn.com/tess/archive/2006/02/15/532804.aspx for one example)
I've attempted to use the XSLT C# extension object but can't quite work out how to replicate the same functionality:
<xsl:value-of select="user:selectNodes( //xml, concat('', @pagecontent_xpath) )"/>
where @pagecontent_xpath
stores an xpath reference back to the XML document.
<xsl:variable name="pagecontent_xpath">rs_data/z_row[@dataset='customers']</xsl:variable>
This problem is effectively preventing me migrating my sites from classic ASP to .NET
Any thoughts?