概要
吉里吉里の拡張ライブラリのひとつにKTLがあります。
ここではKTLのPtreeクラスを使用して、簡単なXMLファイルを読み込む手順を説明します。
KKDE(Kiri Kiri Development Environment) ver 2.0.0で確認しました。
1. KTLのPTreeとは?
【以下KTL本家より引用】
> ◇ KTL (KiriKiri Trivial Library)
> ◇ スクリプト言語 TJS2 の実行エンジン 吉里吉里2 のための拡張機能ライブラリ。
> ◇ 主に KAG に依存しない、様々なスクリプトのための汎用機能の実装を目的としている。
http://www.boleros.x0.com/doc/ktlwiki/index.php?KTLWiki
Bolero MURAKAMI氏の著作物です。
詳細や利用の注意点などは下記を参照してください。
http://www.boleros.x0.com/doc/ktlwiki/index.php?KTLWiki#copyrights-
PTree クラス
構造化データの読み書きや操作を行うクラス。XML, JSON, INFO, YAML, HTML(読込のみ) 形式に対応。
http://www.boleros.x0.com/doc/ktlwiki/index.php?ktl%2FPTree.tjs
2. PTreeを使ってみる
以下に、簡単なサンプルと、導入手順を説明します。
KKDEで、「ファイル→新規作成→プロジェクト作成」をクリックします。プロジェクトの種類として
「KAG3プロジェクト」、名前は適当に「readxmltest」、パスはどこでもよいです。
指定したパスにフォルダが生成されていることを確認します。
下記URLに従って、必要ファイルをダウンロードして、プロジェクトに追加します。
http://www.boleros.x0.com/doc/ktlwiki/index.php?forum%2F%C6%B3%C6%FE%BC%EA%BD%E7
読み込みたいxmlファイルを用意します。
ここではサンプルとして下記のようなxmlファイルを用意し、
readxmltest/others/sample.xml に保存します。
保存するとき、エンコードはUTF-8を指定します。
sample.xml
<?xml version="1.0" encoding="utf-8" ?>
<data>
<enemy>
<img file="slime01"/>
スライム。ぶよぶよ。
</enemy>
<enemy>
<img file="gobline01"/>
ゴブリン。むんむん。
</enemy>
</data>
エネミー一覧のようなデータを想定したサンプルとなっています。
enemyタグごとに、画像を現すimgタグと、説明を表すテキスト部分があります。
KKDEに戻り、startup.tjsに処理を記述していきます。
startup.tjs
// startup.tjs - スタートアップスクリプト
Scripts.execStorage("ktl/PTree.tjs");
var ptree = new PTree();
ptree.readStorageXML("others/sample.xml", "UTF-8", PTree.pfXMLTrimWhitespace);
Scripts.execStorage("system/Initialize.tjs");
readStorageXMLコマンドで、文字コードや読み込みオプションも指定することができます。
読み込んだ結果はptree変数に格納されています。
first.ksを開き、読み込み結果を表示するように修正します。
first.ks
[wait time=200]
XML読み込みテスト[r]
[r]
[emb exp="ptree.get('data.enemy#0')"][r]
[emb exp="ptree.get('data.enemy#0.img.<xmlattr>.file')"][r]
[emb exp="ptree.get('data.enemy#1')"][r]
[emb exp="ptree.get('data.enemy#1.img.<xmlattr>.file')"][r]
3. その他のメソッド
KTLはドキュメントがしっかりしてるので助かります(笑)
XMLのほかにもJSON,INFO,YAML形式に対応しているようです。
詳しくは下記を参照ください。
http://www.boleros.x0.com/doc/ktlwiki/index.php?ktl%2FPTree.tjs#PTree-get