反復

2016-12-16 15 views
0

私はこのXMLテキストを持っている:反復

<apps> 
    <app><id>"abcde"</id></app> 
    <app><id>"xyz"</id></app> 
    <app><id>"bcn"</id></app> 
</apps> 

私はそれを処理するライブラリscala.xmlを使用しています。

私はこのようなループのためにappタグを反復したいと思います:

(xmlText \\ "apps" \\ "app").foreach(app => { 
    //do something 
} 

ただし、この場合には、私が最初appのタグを取得することができます。

2番目のもの、3番目のものなどをどのように指定することができますか?私にとって

答えて

1

作品:

import scala.xml.Elem 
import scala.xml.XML 

object TagIter { 
    val xmlText = <apps> 
        <app><id>"abcde"</id></app> 
        <app><id>"xyz"</id></app> 
        <app><id>"bcn"</id></app> 
       </apps> 
    def main(args: Array[String]) { 
    (xmlText \\ "apps" \\ "app").foreach { app => 
     //do something 
     println(app.text) 
    } 
    } 
} 

"abcde" 
"xyz" 
"bcn" 

あなたのコードのすべてのノードを超える確かに反復します。 N番目のノードでのみ動作したい場合は、これまでに見た数を記録する変数を追加することができます。これはあまりにもあります

:あなたは式にインデックスを適用する場合 https://stackoverflow.com/questions/4468461/select-nth-child-in-xquery-select-next-element

、あなたは一つのノードを選択します。

(xmlText \\ "apps" \\ "app")(1) 
"xyz" 
+0

ありがとうございました。実際に私のコードには全く別の問題がありました。 – octavian