Ответ 1
Используйте пакет scala.xml.pull. Фрагмент, взятый из Scaladoc для 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
, чтобы получить true 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)
}
}