Scala XML如何支持工作?

时间:2010-03-06 07:22:49

标签: xml scala

我确信它应该是显而易见的,但我可以在我的问题上找到任何参考资料。 Scala XML使用什么底层技术?是类似DOM还是类似SAX还是像StAX一样?处理大型文档时,我应该注意哪些性能处罚? StAX是否仍然更有效率?

提前致谢。

2 个答案:

答案 0 :(得分:7)

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

一般来说,与Java相比,Scala在处理XML时正在做自己的事情。 XML是不可变的。您还可以在Scala代码中直接使用XML文字,这样可以使代码更具可读性。

在回复评论时,XML.load使用javax.xml.parsers。{SAXParser,SAXParserFactory}作为基础技术。我还假设生成的xml已加载到内存中。

答案 1 :(得分:2)

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

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