【发布时间】:2011-07-27 15:38:05
【问题描述】:
是否可以在 Visual Studio 中使用 EXSLT 函数?我在 VS 中编写和调试我的 xslt 脚本。我必须做些什么才能使用例如日期:添加()函数?一个非常简单的脚本应该是什么样的? 非常感谢, 彼得
【问题讨论】:
标签: xslt exslt xslt-tools
是否可以在 Visual Studio 中使用 EXSLT 函数?我在 VS 中编写和调试我的 xslt 脚本。我必须做些什么才能使用例如日期:添加()函数?一个非常简单的脚本应该是什么样的? 非常感谢, 彼得
【问题讨论】:
标签: xslt exslt xslt-tools
您还可以使用 msxml:script 标记在 XSLT 中包含您自己的函数。这对于简单的功能很好,也可以在VS2005及更高版本中调试,例如
<msxml:script implements-prefix="user">
<![CDATA[
function toUpperCase(str)
{
return str.toUpperCase();
}
]]>
</msxml:script>
【讨论】:
Visual Studio 的最新三个版本(2010、2008 和 2005)都使用 .NET XslCompiledTransform XSLT 处理器。 XslCompiledTransform 没有实现除common:node-set() 之外的任何 EXSLT 函数——所以你运气不好。
我认为在 Visual Studio 中使用其他 XSLT 处理器没有一种简单而自然的方法,即使有一些技巧可以做到这一点,在这种情况下也无法进行 XSLT 调试。
最后,EXSLT 通常提供一些 EXSLT 功能的有限 XSLT 实现。当然,这样的功能和方便性要小得多,但你可以走这条路。
我个人的建议是开始使用 XSLT 2.0,它比 XSLT 1.0 强大得多,几乎不需要在 XSLT 2.0 应用程序中使用 EXSLT。
当然,VS 中不支持 XSLT 2.0,但还有其他出色的 IDE,例如 oXygen,其中提供了很好的 XSLT 2.0 和 XQuery 调试器。
更新:您可以为 XslCompiledTransform 使用 EXSLT 的第 3 方实现:MVP - XML project's EXSLT .NET module。
【讨论】: