如何使用C#进行XSLT 2.0转换

7

能否在本机的.net框架中使用XSLT 2.0转换呢?

我知道使用XSLT 1.0是可能的。


(从这个角度来看,我猜测http://www.xqsharp.com/xqsharp/是你最好的选择) - Marc Gravell
2个回答

3

微软没有提供XSLT 2.0处理器

一款声称专为.NET开发的XSLT 2.0处理器是XQSharp

另一款非常流行的XSLT 2.0处理器是Saxon 9.x,虽然它是用Java编写的,但有一个特殊的.NET版本。


7
@Jaster:我对XQSharp没有太多经验,但Saxon已经被优化得如此出色,以至于我强烈不同意这种说法。此外,人们使用XSLT 2.0是因为它拥有丰富的新功能,而在99%的情况下,几毫秒的时间差不会有太大影响。 - Dimitre Novatchev
1
不要责怪我,只需使用xslt 1.0进行一些性能测试。基础的.NET vs Saxon或XQSharp。这不是“一些毫秒”的问题。@Alejandro,那么将它们用于xslt是错误的吗?这些工具意图煮咖啡吗? - Jaster
只是添加一些数据,在我们的情况下,XSLT 1.0 需要 450 毫秒,而 Saxon 需要 750 毫秒。 - Benjamin Baumann
1
@BenjaminBaumann,我确信如果用汇编语言编写同样的代码,需要 20-30 毫秒。但是,XSLT 2.0 已经相当老了。现在人们正在使用 XSLT 3.0 / XPath 3.0。也许在此回复发表的三年内,Saxon 进行了进一步的优化(可以在其最新的 Saxon9.5.x 处理器中找到)。 - Dimitre Novatchev
1
我完全同意Dimitre的观点。我只是提供了“现实生活”中的时间,以帮助人们。顺便说一下,这个测试使用的是Saxon 9.5,并且从我们的角度来看性能结果很好。 - Benjamin Baumann
显示剩余3条评论

2

我不同意XQSharp(或Saxon)是慢的说法。虽然它们目前都没有编译成MSIL,但它们都拥有优秀的优化器。我亲身体验过,在大型分组任务方面,使用XQSharp比使用XslCompiledTransform更快。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接