ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

ScalaでXMLファイルを読み込む方法

2012-04-14 13:06:58 | PG(Scala)

ScalaXMLファイルを読み込むにはXMLオブジェクトのloadFileメソッドを使えばいい。のは以前から一応知っていたが、この方法ではルート要素は読めるけど処理命令は読めない。
デバッグモードでステップ実行しつつ見てみたところ、XMLオブジェクトの継承元であるXMLLoaderを直接使えば処理命令も読めることが分かった。
XMLファイル内のコメントを取得するには、さらにハンドラーとかを用意しなければならないようだけど、これも一応出来た。 

ところで、XMLファイルを読み込むには、ConstructingParserを使う方法もある。
こっちだとファイル内に指定されているエンコーディングも取れるし、DTD(DOCTYPE)も取れる。特に何もしなくても処理命令やコメントも取れる。
遥かに簡単じゃん!なんだよちくしょーw


コメント (1)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« JavaFX2 FileChooser | トップ | <? ?>が消えるバグ »
最新の画像もっと見る

1 コメント

コメント日が  古い順  |   新しい順
XMLリテラル内のList・Mapについて (TH)
2012-05-16 12:10:51
はじめまして。いつもScalaメモのページには大変お世話になっています。

Scala XML メモ
.../hishidama/home/tech/scala/xml.html

XMLリテラル
<list>{ List(1,2,3) }</list>

<list>123</list>
に変換されるときの「ルールが謎」の話なんですが、これは List 自体の toString() とかではなく、要素それぞれの toString() がXMLに展開されるようです。試しに REPL で
List(1,2,3).map(_.toString).foreach(print)
とすると
123
と表示されます。Mapも同様です。Mapの各要素はTuple2なので、その toString() になります。REPL でも
Map("a"->123, "b"->456).map(_.toString).foreach(print)

(a,123)(b,456)
と表示されます。
返信する

コメントを投稿

PG(Scala)」カテゴリの最新記事