singleton method REXML::Document.new

new(source = nil, context = {}) -> REXML::Document[permalink][rdoc][edit]

Document オブジェクトを生成します。

source には StringIOREXML::Document のいずかが指定できます。 REXML::Document を指定するとコンテキストと要素、属性が複製されます。文字列の場合はそれを XML と見なしてパースします。 IOの場合は、XML文書を読み出してパースします。

context で「コンテキスト」を指定します。テキストノードの空白や特殊文字の取り扱いを Hash で指定します。以下の Symbol をハッシュのキーとして使います。

:respect_whitespace

空白を考慮して欲しい要素の名前の集合を文字列の配列で指定します。また、すべての要素で空白を考慮して欲しい場合には :all を指定します。デフォルト値は :all です。 REXML::Element#whitespace も参照してください。

:compress_whitespace

空白を無視して欲しい要素の名前の集合を文字列の配列で指定します。この指定は :respect_whitespace での指定を上書きします。すべての要素で空白を無視して欲しい場合には :all を指定します。 REXML::Element#whitespace も参照してください。

:ignore_whitespace_nodes

空白のみからなるノードを無視して欲しい要素の名前の集合を文字列の配列で指定します。すべての要素で無視して欲しい場合は :all を指定します。これが設定された場合、空白のみからなる text node は追加されません。 REXML::Element#ignore_whitespace_nodes も参照してください。

:raw

raw mode で取り扱いをして欲しい要素の名前の集合を文字列の配列で指定します。すべてのノードを raw mode で取り扱って欲しい場合は :all を指定します。 raw mode においては、text 中の特殊文字は一切変換されません。 REXML::Element#raw も参照してください。

[PARAM] source:
XML文書(文字列, IO)もしくは REXML::Document オブジェクト
[PARAM] context:
コンテキスト
[EXCEPTION] REXML::ParseException:
XML文書のパースに失敗した場合に発生します
[EXCEPTION] REXML::UndefinedNamespaceException:
XML文書のパース中に、定義されていない名前空間が現れた場合に発生します