class REXML::Formatters::Default

[edit]

要約

XMLドキュメントを(文字列として)出力するクラスです。

REXML::Formatters::Pretty と異なりテキストの改行や空白を修正せずにそのまま出力します。


require 'rexml/document'
require 'rexml/formatters/default'
doc = REXML::Document.new <<EOS
<root>
<children>
  <grandchildren/>
</children>
</root>
EOS

default_formatter = REXML::Formatters::Default.new
output = StringIO.new
default_formatter.write(doc, output)
output.string
# => "<root>\n<children>\n  <grandchildren/>\n</children>\n</root>\n"

output = StringIO.new
default_formatter.write(REXML::XPath.first(doc, "/root/children"), output)
output.string
# => "<children>\n  <grandchildren/>\n</children>"

ie_hack_formatter = REXML::Formatters::Default.new(true)
output = StringIO.new
ie_hack_formatter.write(doc, output)
output.string
# => "<root>\n<children>\n  <grandchildren />\n</children>\n</root>\n"

目次

特異メソッド
インスタンスメソッド

特異メソッド

new(ie_hack=false) -> REXML::Formatter::Default[permalink][rdoc][edit]

フォーマッタオブジェクトを生成して返します。

このフォーマッタによる出力は基本的にテキストの空白や改行を変化させません。

ie_hack に真を渡すと、空のタグを閉じる前で空白を挿入します。これは特定のバージョンのIEのXMLパーサのバグを避けるための機能です。

[PARAM] ie_hack:
空のタグを閉じる所にスペースを入れるかどうかを指定します

インスタンスメソッド

write(node, output) -> ()[permalink][rdoc][edit]

XML のノード node を output に出力します。

node には任意のXMLノードを指定できます。

[PARAM] node:
出力するノード
[PARAM] output:
出力先(IO など << で出力できるオブジェクト)