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

时间:2010-05-25 21:26:18

标签: xml scala

如何使用Scala将xml文档解析为流? 我在java中使用了Stax API来实现这一目标,但我想知道是否有“scala”方法可以做到这一点。

2 个答案:

答案 0 :(得分:27)

使用包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)
  }
}

您可以在toIterator上致电toStreamer,以获得真实IteratorStream

这是2.7版本,略有不同。但是,测试它似乎表明它不会检测到流的结束,这与Scala 2.8不同。

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)
  }
}

答案 1 :(得分:-2)

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

还有其他人......