如何使用Scala将xml文档解析为流?

如何使用Scala将xml文档解析为流?,xml,scala,Xml,Scala,如何使用Scala将xml文档解析为流? 我在java中使用了STAXAPI来实现这一点,但我想知道是否有一种“scala”方法来实现这一点 scala.xml.XML.loadFile(fileName: String) scala.xml.XML.load(url: URL) scala.xml.XML.load(reader: Reader) scala.xml.XML.load(stream: InputStream) 还有其他…使用scala.xml.pull包。取自Scaladoc

如何使用Scala将xml文档解析为流? 我在java中使用了STAXAPI来实现这一点,但我想知道是否有一种“scala”方法来实现这一点

scala.xml.XML.loadFile(fileName: String)
scala.xml.XML.load(url: URL)
scala.xml.XML.load(reader: Reader)
scala.xml.XML.load(stream: InputStream)

还有其他…

使用scala.xml.pull包。取自Scaladoc for Scala 2.8的代码段:

import scala.xml.pull._
import scala.io.Source
object reader {
  val src = Source.fromString("<hello><world/></hello>")
  val er = new XMLEventReader(src)
  def main(args: Array[String]) {
    while (er.hasNext)
      Console.println(er.next)
  }
}

这不会将整个文档加载到内存中吗?我想解析它并在收到它时处理它,而不是先将整个文档存储在内存中。@ScArcher2:是的,这些不是流式API。我必须将代码更改为val er=new XMLEventReader()。谢谢2.7xml.pull被野蛮地破坏了,除了非常勇敢的人之外,所有人都应该完全避免它。2.8情况有了很大改善,scala.xml.pull现在还不是很好;我建议不要使用它:有人知道比解析“hello world”更复杂/更完整的例子吗?我知道这件事是因为我曾经与之交谈过的人正在使用它。你想做什么,有什么问题吗?问更多的问题。这将使下一个想要使用它的人更容易使用它。:-)
import scala.xml.pull._
import scala.io.Source

object reader {
  val src = Source.fromString("<hello><world/></hello>")
  val er = new XMLEventReader().initialize(src)

  def main(args: Array[String]) {
    while (er.hasNext)
      Console.println(er.next)
  }
}