2016-05-16 74 views
0

我們的應用程序接收來自另一個系統的XML消息。該XML的結構是這樣的:Scala xml:屬性之間的依賴關係

<params> 
    <param name="FOO" value="BAR"/> 
    ... 
</params> 

什麼是最好的方式,使用Scala的原生XML處理,返回值BAR的是FOO參數,使:

val foo = "BAR" 

感謝

回答

1

我假設你的xml無效,因爲缺少param結束標記,應該是,例如

var x = <params> 
    <param name="FOO" value="BAR" /> 
    <param name="FOO2" value="BAR2" /> 
</params> 

如果要提取的唯一PARAM FOO,我不認爲你會發現什麼比

(x \ "param" find (n => (n \ "@name").toString == "FOO")).get \ "@value" 

如果你想獲得的所有PARAMS好得多,你可以在它們之間迭代:

x \ "param" foreach {n => println(n \ "@name" + " -> " + n \ "@value")} 
+0

謝謝 - 我糾正了有問題的XML片段。 – user1052610