2014-01-21 93 views
0

在Scala中我试图解析一个大的XML元素具有以下格式:斯卡拉解析大型XML元素

<position>
0.68 0.37 0.07
0.68 0.37 0.07
0.68 0.37 0.07
。 ..
...
<\position>

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

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

回答

1

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

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

这不是真正的大XML文件的工作,因为XML库使用DOM解析器。您必须将整个XML读取为字符串,然后直接使用上述答案中所述的tequniques,或切换到SAX或Pull Parser。 –