[#36686] 1.1 < 61.1 - 60.0 — Shin-ichiro HARA <sinara@...>

原です。

19 messages 2002/12/06

[#36770] www.ruby-lang.orgリニューアル準備のお知らせ — TADA Tadashi <sho@...>

ruby-lang.orgのwebmasterチームでは、タイムリーな情報提供と使いやすい

11 messages 2002/12/16

[ruby-list:36876] xtemplate -- XML template system

From: Takaaki Tateishi <ttate@...>
Date: 2002-12-30 08:23:30 UTC
List: ruby-list #36876
立石です.

xtemplateというamritaに似た軽量かつ小さなXMLのテンプレートライブラリをリリ
ースしました.現在のバージョンは 0.1.5 です.xmlscanというXMLパーサーを使っ
ており,データを元に展開するという作業に関してはamritaより最大で一桁近く速
いです.amritaを使っていて日本語の処理でちょっとつまづいたことが起こって作
り始めたものです.

以下はその他の特徴です.

1. データの書き方がamritaと少し違います.
  たぶん,amritaからxtemplateへのデータの変換は自動で行うことができます
  が,逆はできない場合があります.変換方法は,以下のファイルを参考にして下さい.
  http://kt-www.jaist.ac.jp/~ttate/cvs/cvsweb.cgi/~checkout~/xtemplate/bin/xtemplate

2. 仮想のタグ(?)を埋め込むことができます.
   (これはもうちょっと考える必要がありますが…)

3. 任意の位置のデータを利用することもできます.

以下のスクリプトは,これらの具体的な例です.

data ={                                       <= データ
  'links' => [
    {'link' => {'@href' => "url1", "." => "anchor1"}},
    {'link' => {'@href' => "url2", "." => "anchor2"}},
    {'link' => {'@href' => "url3", "." => "anchor3"}},
  ],
}

text = <<EOF
<?xml version="1.0" encoding="EUC-JP"?>
<html>
<body>
  <ul>
    <li id="links">
       <a id="link"></a>
       <text id="link/@href"></text>             <= 任意のデータの取り出し
    </li>
  </ul>
  <a id="/links">[<?xtemplate id="link"?>]</a>   <= 仮想のタグ(?)
</body>
</html>
EOF

t = XTemplate::Template.new(text)
print(t.expand(data))

これを実行すると次の結果を得ることができます.

<?xml  version="1.0" encoding="EUC-JP"?>
<html>
<body>
  <ul>
    <li>
       <a href="url1">anchor1</a>
       <text>url1</text>
    </li><li>
       <a href="url2">anchor2</a>
       <text>url2</text>
    </li><li>
       <a href="url3">anchor3</a>
       <text>url3</text>
    </li>
  </ul>
  <a href="url1">[anchor1]</a><a href="url2">[anchor2]</a><a href="url3">[anchor3]</a>
</body>
</html>
-- 
Takaaki Tateishi <ttate@kt.jaist.ac.jp>

In This Thread

Prev Next