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