我需要在.net 4.0中使用XSLT 2.0处理器工具。 我发现.net不支持XSLT 2.0。替代方案是Saxon 9.x或XQSharp等第三方引擎。我需要XSLT 2.0支持商业生产环境,其中性能非常重要。问题:
答案 0 :(得分:7)
在过去的几周里,我使用XQSharp,Saxon 9.x和AltovaXml来重写我的程序,使用的是Microsoft XSLT1引擎。在这里我的经历:
<强> AltovaXml 强>
<强> XQSharp 强>
Saxon 9.x
对于我的特定XML和XSLT(XSLT1)翻译性能比较:
答案 1 :(得分:4)
我是XQSharp开发人员,但我会尝试给出一个公正的答案。
XQSharp和Saxon都是很好的产品。每个都符合标准,并且都旨在实现卓越的性能。我最好的建议是下载试用版并使用您希望运行的转换进行测试。我们很想知道你是怎么过的。
如果您在.NET环境中运行,我希望XQSharp具有一些优势。首先,它是在.NET中开发的,而Saxon是用Java开发的,它使用IKVM在.NET上运行。您可能希望比较Saxon的Java和.NET版本,以确定这是否会产生性能开销。
XQSharp旨在与.NET框架System.Xml和System.Xml.XPath命名空间中的类很好地集成。例如,该实现使用XPathNavigators。您可能会发现这种熟悉程度很有用。
XQSharp实现并扩展XslCompiledTransform中的功能,以便从XSLT调用.NET,您可能会发现它很有用。
请参阅此implementations列表。
答案 2 :(得分:1)
没有找到如何回复上述答案(这给了我一些好的提示),所以我会在这里发布: AltovaXML已经改变了他们关于AltovaXML.dll的政策。你可以免费获得一个版本,但它缺少一些功能。所以你最好购买许可证。 看起来Altova也有一些内存问题,因为即使关闭了连接,程序似乎也能继续工作。
萨克森有一个奇怪的先试后买政策。我的意思是,你得到一个30天的测试有点奇怪,但开始/结束日期是10天左右(在撒克逊的网站上阅读更多)。它还会为转换后的文件添加一些文本。我不喜欢这样,因为我希望我的转换文件 - 即使在测试中 - 是正确的,这样我就可以看到可以将文件发送到我们的系统中。我希望这会在以后的版本中发生变化。XQSharp - 我没有试过这个,所以我不能说太多。当我升级使用XSLT2.0的服务时,我会给这个库/帮助器一个旋转。