.net - Saxon 9.x vs XQSharp vs AltovaXML for .net

标签 .net xslt xslt-2.0

我需要 XSLT 2.0 处理器工具才能在 .net 4.0 中使用。 我发现 .net 不支持 XSLT 2.0。替代方案是第三方引擎,例如 Saxon 9.x 或 XQSharp。我需要 XSLT 2.0 支持商业生产环境,其中性能非常重要。问题:

  1. Saxon 9.x 或 XQSharp,我必须选择哪一个?
  2. 这两种产品的优缺点是什么?
  3. 还有其他选择吗?
  4. AltovaXML 与 Saxon 9.x 或 XQSharp 相比怎么样?

最佳答案

在过去的几周里,我使用 XQSharp、Saxon 9.x 和 AltovaXml 使用 Microsoft XSLT1 引擎重写了我的程序。这是我的经验:

AltovaXml

  • 它是免费的(但免费版本有限制并且不附带源代码)。
  • 网站不错,可以找到您需要的内容
  • API 简单且易于设置
  • 拥有适用于多种不同语言的 API
  • 它使用 COM,换句话说,需要 native 代码互操作
  • 这是我使用过的最慢的引擎

XQSharp

  • .NET 友好
  • 抛出良好的异常并提供良好的描述
  • 比 AltovaXml 更快
  • 它不是免费的,也没有提供来源

撒克逊 9.x

  • 网站不友好,很难找到您搜索的内容
  • 由 Michael Kay(XSLT 2.0 语言 W3C 规范的编辑者)创建
  • 我使用过的最快的 XSLT2 引擎
  • 有一个有限的开源版本,非免费版本附带架构感知和流媒体
  • 基于 Java,但附带了到 .NET 的打包 IKVM 端口

对于我的特定 XML 和 XSLT (XSLT1) 翻译性能比较:

  1. 0,02 秒 Microsoft XSLT1 引擎
  2. 0,45 秒撒克逊 9.x
  3. 0.60 秒 XQSharp(使用 OptimizationLevel.None)
  4. 0.90 秒 XQSharp(默认设置)
  5. 1,20 秒 AltovaXml

关于.net - Saxon 9.x vs XQSharp vs AltovaXML for .net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6465729/

相关文章:

xslt - xsl 获取元素数组

c# - 需要一个正则表达式来检测简单的数学表达式

jquery - 动态 CSS Sprite 注入(inject)

java - XSL 错误 - "... does not identify an external Java class"

xml - 我的 XSLT 过滤器如何避免在删除元素时在输出 XML 中留下空行,而不更改缩进?

xml - 如何更新xslt中的变量值?

xslt - 如何使用 XSLT 转换来转换 Soap 对象数据

xml - 对属性(按值)使用一个模板,对(父)节点使用另一个模板

c# - 第一次点击按钮很慢

.net - YesNo MessageBox 在单击 x 按钮时未关闭