XML<=>YAML<=>JSON<=>HashMap?をScalaからスムーズに扱うためのjarファイルをつくっています。
import prototype.Prototype._ var yaml = """ <users> <user> <name>Ichiro</name> <mail>ichiro@example.com</mail> </user> <user> <name>Jiro</name> <mail>jiro@example.com</mail> </user> <user> <name>Saburo</name> <mail>saburo@example.com</mail> </user> </users> """.xml.yaml.p
users: - mail: ichiro@example.com name: Ichiro - mail: jiro@example.com name: Jiro - mail: saburo@example.com name: Saburo
scala prototype.zip からダウンロードしてください。
必要なJarファイルをscalaのクラスパスに格納しておきます。
メソッドをつかう前に下記のインポートをしておきます。 import prototype.Prototype._
文字列をXMLとして取り込みます。
ハッシュをXMLとして文字列に変換します。
文字列をYAMLとして取り込みます。
ハッシュをYAMLとして文字列に変換します。
文字列をJSONとして取り込みます。
ハッシュをJSONとして文字列に変換します。
文字列を出力します。
http://jyaml.sourceforge.net/index.html
Xalan-Javaに含まれている
たとえば、xmlにusersという名前の要素名とuserというその子供の要素がある場合を想定した説明をします。
たとえば、配列データがあったとした場合、XMLに無名の要素は組み込めない仕様なので、親要素名から一文字削った要素名を自動で用意することにしています。
YAMLをXMLに変換する場合usersしかデータがもっていなくても、自動的にuserという名前の要素が格納されるのです。
上記との逆操作として、子の要素が親要素の一文字削っただけの名前の場合、配列要素として見なします。
XMLに含まれるuser要素はYAMLに変換する際に配列要素となるため、無名になります。