2011年12月7日水曜日

scalaでXMLを操作するサンプル

アテンドのAPIを使ってXML形式で情報を取得し
必要な情報を抽出する処理をscalaで書いてみました。
関数名が「/」の関数があるけど、分かりづらい。。。


import scala.xml._

// XMLを取得
val xml:Elem = XML.load("http://api.atnd.org/events/?keyword=scala")

// ルートノード以下のすべてのノードを取得
for (node:Node <- xml.descendant) {
 // タイトルにscalaが含まれている
 if(node.\("title").text.contains("scala")) {
  println("タイトル:" + node.\("title").text)
  println("場所:" + node.\("place").text)
  println("時間:" + getDate(node.\("started_at").text) +" to " 
  + getDate(node.\("ended_at").text))
  println("URL:" + node.\("event_url").text + "\n")
 }
}

// 日付形式を変換
def getDate(date:String):String = {
 date.replace("-", "/").replace("T", " ").substring(0, 19)
}

0 件のコメント:

コメントを投稿