Scala解析大型XML元素

Scala解析大型XML元素,xml,scala,Xml,Scala,在Scala中,我试图用以下格式解析一个大型XML元素: 0.680.370.07 0.680.370.07 0.680.370.07 … … 我想将这个元素的每一行分解成一个double类型的元组(可能),并将每个元组添加到一个容器中。到目前为止,我掌握的代码是: val sample = scala.xml.XML.loadFile("filename.xml") (sample \ "position") 在我看来,最直接的方法是 (sample \ "position").text

在Scala中,我试图用以下格式解析一个大型XML元素:


0.680.370.07
0.680.370.07
0.680.370.07



我想将这个元素的每一行分解成一个double类型的元组(可能),并将每个元组添加到一个容器中。到目前为止,我掌握的代码是:

val sample = scala.xml.XML.loadFile("filename.xml")
(sample \ "position")

在我看来,最直接的方法是

(sample \ "position").text.trim.split('\n')
  .map(_.split(" ").map(_.toDouble))
  .map(x => (x(0), x(1), x(2)))

这不适用于真正大的XML文件,因为XML库使用DOM解析器。您或者必须将整个XML作为字符串读取,并按照上面的回答直接使用tequniques,或者切换到SAX或Pull解析器。