【问题标题】:How does Scala XML support work?Scala XML 支持如何工作?
【发布时间】:2010-03-06 07:22:48
【问题描述】:

我确信这应该很明显,但我可以找到关于我的问题的任何参考资料。 Scala XML 使用什么底层技术?它是类似 DOM 还是类似 SAX 或类似 StAX 的东西?处理大型文档时应该注意哪些性能损失? StAX 是否仍然更高效?

提前致谢。

【问题讨论】:

    标签: xml scala


    【解决方案1】:

    可以使用scala.xml.pull.XMLEventReader 处理大型文档(数百 MB)。请参阅nightly scaladoc(假设您将使用 2.8)。这是使用像 StAX 这样的拉解析器模型。

    一般而言,与 Java 相比,Scala 在处理 XML 时各司其职。 XML 是不可变的。您还可以在 Scala 代码中直接使用 XML 文字,这会使代码更具可读性。

    针对评论XML.load 使用 javax.xml.parsers.{ SAXParser, SAXParserFactory } 作为底层技术。我还假设生成的 xml 已加载到内存中。

    【讨论】:

    • 谢谢。我忘了提到我的问题仅被视为解析(确切地说是XML.load() 方法,以及相应的NodeSeq 东西)——我想如果我使用这个API,整个文档都会被加载和解析?跨度>
    • 再次感谢,您的补充是我一直在寻找的答案。
    【解决方案2】:

    Scala 做自己的事情。大多数 XML 模型都是可变的,并且不能很好地转化为不变性(因为它们主要跟踪父级)。

    Here's 一篇关于它的论文。

    【讨论】:

      猜你喜欢
      • 2012-07-23
      • 2011-11-26
      • 2010-11-11
      • 2011-05-29
      • 2011-05-12
      • 2019-02-01
      • 2010-09-13
      • 2011-05-28
      • 1970-01-01
      相关资源
      最近更新 更多