我确信它应该是显而易见的,但我可以在我的问题上找到任何参考资料。 Scala XML使用什么底层技术?是类似DOM还是类似SAX还是像StAX一样?处理大型文档时,我应该注意哪些性能处罚? StAX是否仍然更有效率?
提前致谢。
答案 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一篇关于它的论文。