2016-05-16 22 views
0

私たちのアプリケーションは、別のシステムからXMLメッセージを受け取ります。Scala xml:属性間の依存性

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

ように、FOOあるパラメータの値BARを返すために、ScalaのネイティブXML処理を使用して、最良の方法は何ですか:XMLは、このように構成されている

val foo = "BAR" 

おかげ

答えて

1

私はあなたのXMLがparam終了タグが欠落して無効であると仮定し、それは例えば、あるべき

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

あなただけのparam FOOを抽出したい場合は、私はあなたがすべてのparamsを取得したい場合は、あなたがそれらを反復処理することができます

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

よりもはるかに良い何かを見つけるだろうとは思わない:

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

ありがとう - 私は問題のxmlスニペットを修正しました。 – user1052610