如何使用Scala将xml文档解析为流? 我在java中使用了Stax API来实现这一目标,但我想知道是否有“scala”方法可以做到这一点。
答案 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
上致电toStream
或er
,以获得真实Iterator
或Stream
。
这是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)
还有其他人......