TOP>>OBAQ>>HTMLジェネレーター 概略ツアー<OBAQ>構成定義アプリケーションサーバリファレンスサイトマップ

テンプレートの読み書き


テンプレートの読みこみ

テンプレートを読みこむ方法は以下の3とおりです。

ファイルからの読みこみ

template = HtmlParser.parse_file(ファイル名)

IOオブジェクトからの読みこみ

template = HtmlParser.parse_io(IOオブジェクト)

インラインテキストの読みこみ

template = HtmlParser.parse_inline <<-END
<html>
  <body>
     <h1 id=title></h1>
     <p id=body></p>
  </body>
</html>
END

いずれの場合も、内蔵のHTMLパーサによって、Htmlgen::Nodeオブジェクトで構成されたツリーに展開されます。

処理結果の書き出し

HTMLツリーを書き出すには、Htmlgen::Formatterというオブジェクトを生成し、 ツリーを引数にしてFormatterオブジェクトのformatというメソッドを呼び出します。 出力先は、Formatterオブジェクトの生成時に指定します。

ファイルへの書き出し

treeという変数に出力すべきHTMLツリーが入っているとすると、 以下のようにしてファイルへ結果を書き出すことができます。

File.open(ファイル名, "w") do |f|
  Formatter.new(true, f).format(tree)
end

Formatter::newの最初の引数は、改行を入れるかどうかのフラグで、 これをfalseにすると改行なしで出力されます。 既定値はtrueです。

文字列として結果を取り出す

result =  Formatter.new.format(tree)

出力先を指定しないでFormatterを生成した場合は、 formatメソッドは結果を文字列として返却します。


ページトップへ