【问题标题】:XOM analogue for Scala?Scala 的 XOM 模拟?
【发布时间】:2011-02-26 17:11:46
【问题描述】:

是否有一个用于 Scala 的 XML 处理库“力求正确性、简单性和性能,按此顺序”就像 XOM 的 Java 一样? (Scala XML API 不是一个选项)

【问题讨论】:

  • 如果您解释一下为什么 Scala XML API 不适合,可能会更容易回答您的问题。
  • 有很多东西。从不规范或不符合 XML 规范的各种名称(例如 label 而不是 Elem 中的 localName)到尴尬的 API 点(例如尝试迭代 Elem 的属性)。模式匹配结构对我来说似乎完全不可读。我喜欢清晰的代码。在某些情况下,我更喜欢可变节点(在 Scala 中,不变性不是公理,对吧?)
  • 我并不是要为scala.xml 辩护,因为我确实认为存在一些奇怪的问题,但您可以通过Elem 上的.attributes.iterator 获得Iterator属性。

标签: xml scala xom


【解决方案1】:

据我所知,Scala 的唯一替代 XML 库是 anti-xml,这是在两周前开始的一项工作。它现在对任何事情都没有真正的用处,但如果你觉得值得,至少可以尝试影响它的发展。

【讨论】:

  • 太棒了!一遍又一遍地听到 Scala 的 XML 支持被破坏并且似乎没有人愿意修复它,这令人沮丧。
  • 谢谢。实际上,我问这个问题是为了了解是否有人已经开始了我可以参与的替代项目。其实我非常喜欢anti-xml中简要描述的想法。再次感谢。
【解决方案2】:

如果其他人来这里,Scales Xml 是最喜欢 XOM 的,实际上它的正确性扩展到直接建模 QName,与 DOM 和 Pull Parsing 共享模型,甚至纠正烦人的 JAXP impl 序列化错误(坏 cdata 拆分等)。

它也比 Scala Xml 更快,同时提供更低的内存使用率。

我不确定是否更简单,因为这主要取决于用户的观点。然而,它确实通过更好地使用类型系统和为其大部分树处理提供 XPath Dsl 来努力做到简单。

对于大多数 xml 处理来说,它是一种完全不同的方法,而 Anti-Xml 看起来与 Scala Xml 非常相似。

【讨论】:

    【解决方案3】:

    您为什么不简单地将绝对出色的 XOM 与隐式转换等封装起来呢? 是的,它不会为您提供开箱即用的 scala 的 XML-native-syntax 样式...

    【讨论】:

      猜你喜欢
      • 2012-02-01
      • 2011-04-04
      • 2021-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-05
      相关资源
      最近更新 更多