使用Scala作为XSLT的替代品?

Chu*_*ucK 6 xml xslt scala

在我的Scala项目中,我们有很多遗留的XSLT,并且想知道我们是否应该将XSLT转换为Scala代码.

我喜欢将XSLTs模板应用到节点的XSLT方法,并且很好地将它用于纯粹的DOM转换,但是不认为它非常适合处理XML文档中的数据(难以阅读和测试) - 我宁愿使用Scala来去做.

鉴于Scala内置的XML支持和模式匹配,我认为它可能是一个很好的替代品.有没有人成功将XSLT脚本转换为Scala?有任何模式或最佳实践吗?

我知道一个旧的项目将XSLT转换为Scala源代码,称为XSLT2src,但是它已经处于休眠状态很长时间并且不支持XSLT2.

谢谢

ebr*_*hez 6

如果不确切知道要转换的XML以及如何转换,很难确定,但事实上,XSLT模板/匹配比Scala XML模式匹配更强大,更易读,后者存在许多问题.

特别是:

  • 任何非平凡的匹配要么不可能,要么很难做到
  • 不支持名称空间

所以你最好从Scala调用Saxon来执行这些转换.

不过,您可能希望查看Scala编程中的XML章节.

最后,现在流行的观点是Scala中内置的XML支持在很多方面都缺乏.有关旨在更好地构建内容的项目,请参阅例如Anti-XML.