Last active
August 29, 2015 14:24
-
-
Save kkismd/04849b05fb9890fa502d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
kkismd 6月 30 11:08 | |
フォーマットの決まったXMLをパースしてcase classに格納したいとき、 | |
標準のscala.xmlだけで下記のようにやってみてるのですが、 | |
https://gist.github.com/kkismd/87e073fadfa63423308a | |
このへんを省力化してくれるライブラリはありますか? | |
JSON -> case classはいろいろ見つかるんですがXMLは探しかたが悪いのか見つかりませんでした。 | |
mather 6月 30 12:08 | |
scalaxbでしょうか。 | |
xuwei-k 6月 30 12:13 | |
json4sにxmlとjsonの変換とかあるのでそれ使ってcase classの変換不可能ではない?けど、どのくらい使えるのか微妙だし、json4s色々アレなので微妙な気はする(けど一応紹介) | |
https://github.com/json4s/json4s/blob/v3.2.11/core/src/main/scala/org/json4s/Xml.scala | |
kkismd 6月 30 12:16 | |
ありがとうございます。フォーマットは決まってますが、フォーマルなスキーマまでは用意されてないような場合にもscalaxbは使えるでしょうか? > @mather | |
json4sも見てみます | |
mather 6月 30 12:24 | |
XMLの場合はそもそもデータ自体に型(int, string, array, etc)が定義されていないので、自動でパースするためのヒントとしてスキーマファイルは必須かと思っています。手っ取り早くやるには自分でXMLパースするしか無いかもしれません。 | |
xuwei-k 6月 30 12:26 | |
自分だったらjson4s使うくらいならScalaのxmlのライブラリ直で使うかなぁ(scalaxbはあまり詳しくない) | |
Saisse 6月 30 12:29 | |
XMLだと何かしらの方法でマッピングを定義しないとなので、手で書いた方が速そうな感はありますねー | |
kkismd 6月 30 12:30 | |
Option[String]からOption[A]に変換する関数がひと通りあれば、あとのボイラープレートは力技でもいいような気もしてきました… | |
(A = {Int, Double, DateTime, ...}) | |
eed3si9n 6月 30 14:11 | |
relaxng compact syntax とか前は書いた - http://www.relaxng.org/compact-tutorial-20030326.html |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
この場合はOptionなので for 式でよい
ただしEitherのようなエラー情報を残したい場合は for でなく Applicative[Validation] を検討したい。