読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

NodeSeq#\

Scala

NodeSeq#\NodeSeq#\\で遊んでみた。

// XML リテラル
var xml:scala.xml.Elem = 
  <kittens type="animal" xmlns="http://kittens.com" xmlns:t="http://tigers.com">
    <kitten age="1">mii</kitten>
    <t:tiger age="2">tora</t:tiger>
    <kitten age="3">shiro</kitten>
    <foo>
      <kitten age="3">kuro</kitten>
    </foo>
  </kittens>
  
// ルート直下のkitten要素の値を列挙
// 「\」では直下のノードのみが対象。
// 「\\」で配下の全ノードが探索される。
println("\n---kitten \\")
xml \  "kitten" foreach ( k=>println( k.text ))

println("\n---kitten \\\\")
xml \\ "kitten" foreach ( k=>println( k.text ))

println("\n---tiger")
xml \ "tiger" foreach ( k=>println( k.text ))

// 「\」をつなげて配下を選択できる。XPath風。
println("\n---foo \\ kitten")
xml \ "foo" \ "kitten" foreach ( k=>println( k.text ))

// 「@<属性名>」で属性へアクセス。
println("\n---type")
println( xml \ "@type")

// 「_」で全選択
println("\n---_ \\ @age")
xml \ "_" foreach ( k=>println( k\"@age" ) )

実行結果です。

---kitten \
mii
shiro

---kitten \\
mii
shiro
kuro

---tiger
tora

---foo \ kitten
kuro

---type
animal

---_ \ @age
1
2
3

常識的に考えて「\」じゃなくて「/」だろー、とか思ったけど、派生元のIterableで使われてるから「\」とかになったのかな。