2014-01-21 119 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。 –