2016-05-16 28 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