外部ファイル/外部コマンド出力をxvcdで扱う
xfy のオンライン資料中のサンプル
http://www.xfy.com/jp/manual/1.3/documents/dev/developer/1.3/howto/xvcd_tutorial.html#adress
の住所録は、読み込むxml ファイルに住所データを保持し、それを xvcd で html のテーブルに変換をしています。
(つまりデータすべてがメモリーに読込まれることになります)
先日 私は、任意の外部コマンドを xfy から実行する方法を試して、公開しました。
今日は、外部コマンドの出力が xml だったとして、それを xvcd で処理する例を公開します。
http://homepage2.nifty.com/youichi_kato/src.html の
xfy で 外部ファイルの内容や外部コマンドの出力に template を適用する例 (2006-11-03)
スクリーンショット
読み込む xml
xvd
データ xml
xvcd から核心部分のみを抜粋します。
<!-- use external xml file -->
<xvcd:apply-templates select="function:document(./ab:data-url)"/>
<hr />
<!-- use command output -->
<xvcd:variable name="output" select="example:run-command(./ab:data-command)"/>
<xvcd:apply-templates select="function:xml-string-to-dom($output)"/>
<hr />
<pre>
<xvcd:value-of select="$output"/>
</pre>
ここで、
ab:data-url には file:///tmp/data.xml
ab:data-command cat /tmp/data.xml
のテキストが設定されています。(See 読み込む xml [AddressBook.xml] )
大事なのは
外部データの取得には function:document ,
文字列を xml として取り込むには function:xml-string-to-dom をつかうということだけです。
この例では 外部のxmlファイルにデータを保持している場合や、xpath 関数の評価結果としてデータを取得した場合に、それに対して xvcd で処理をする例を作ってみました。
次は、データを RDB (組込みDB の derbyを使う予定) から取得するようにする例を作ろうと思っています。
そして、DB へのデータ追加/削除/更新 も xpath 関数経由で行うようにすることで、大量データを扱えるようにします。
大量のデータ例としては郵便番号が扱えればと考えています。
« ピックアップ: CocoaMySQL,AMラジオ3個でテルミン,その他 | トップページ | 感想: イルマーレ (ハリウッド版) »
この記事へのコメントは終了しました。
« ピックアップ: CocoaMySQL,AMラジオ3個でテルミン,その他 | トップページ | 感想: イルマーレ (ハリウッド版) »
コメント