我有一个带有C#脚本的XSLT:
<msxsl:script language="C#" implements-prefix="user">
<msxsl:using namespace="System.Xml"/>
<msxsl:using namespace="System.Xml.XPath"/>
<![CDATA[
public string GetMenuPath(XPathNodeIterator node)
{
XPathNavigator dataSourceNode = node.Current;
return dataSourceNode.Name;
}
]]>
</msxsl:script>
在XSLT的某个地方,这个函数被称为:
<xsl:value-of select="user:GetMenuPath(current())"/>
但是当我尝试在XML输入上运行XSLT转换时(输入无关紧要),它会立即停止并显示错误“msxsl:script not empty”。
我完全不知道为什么......我在.NET Framework中使用nxslt。
谢谢你的帮助!
答案 0 :(得分:1)
感谢您的回答,我现在发现了问题的根源。这是因为我使用“style”标签而不是“nxslt”来调用XSLT转换。只要没有扩展脚本,“style”就可以工作。
<nxslt style="transformation.xsl" in="input.xml" out="output.xls" verbose="true">
答案 1 :(得分:0)
它是否为您提供转换停止的行?它是在脚本标签中调用的位置吗?
答案 2 :(得分:0)
您是否尝试将扩展方法放入单独的程序集并以此方式引用它?
马克