るりまサーチ (Ruby 2.3.0)

最速Rubyリファレンスマニュアル検索!
107件ヒット [1-100件を表示] (0.126秒)
トップページ > バージョン:2.3.0[x] > クエリ:REXML::Document[x]

別のキーワード

  1. rexml/document new
  2. rexml/document write
  3. rexml/document to_s
  4. rexml/document clone
  5. rexml/document node_type

ライブラリ

モジュール

検索結果

<< 1 2 > >>

REXML::Document (69019.0)

XMLの完全な文書(ドキュメント)を表すクラス。

XMLの完全な文書(ドキュメント)を表すクラス。

XML処理命令(Processing Instruction, PI)、
DTD(文書型定義、Document Type Definition)、
などを含んでいます。
ドキュメントは直下の子ノードをただ一つ持っています(rootと呼び、
REXML::Document#root でアクセスできます)。
2つ目の要素を(REXML::Element#add_elementなどで)追加しようとすると
例外(RuntimeError)が発生します。

REXML::Document.new(source = nil, context = {}) -> REXML::Document (63358.0)

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

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

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

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

: :respect_whitespace
空白を考慮して欲しい要素の名...

REXML::Document#clone -> REXML::Document (63322.0)

self を複製します。

self を複製します。

REXML::Document.new(self) と同じです。

REXML::Document.entity_expansion_limit -> Integer (63037.0)

実体参照の展開回数の上限を返します。

実体参照の展開回数の上限を返します。

XML 文書(REXML::Document)ごとの展開回数がこの値を越えると
例外を発生させ、処理を中断します。

実体参照の展開処理を使った DoS 攻撃に対抗するための
仕組みです。

デフォルトは 10000 です。

このメソッドは Ruby 2.1 から deprecated になりました。
REXML::Security.entity_expansion_limit を使ってください。

@see REXML::Document.entity_expansion_limit=

REXML::Document.entity_expansion_limit=(val) (63037.0)

実体参照の展開回数の上限を指定します。

実体参照の展開回数の上限を指定します。

XML 文書(REXML::Document)ごとの展開回数がこの値を越えると
例外を発生させ、処理を中断します。

デフォルトは 10000 です。

このメソッドは Ruby 2.1 から deprecated になりました。
REXML::Security.entity_expansion_limit= を使ってください。

@param val 設定する上限値(整数)
@see REXML::Document.entity_expansion_limit

絞り込み条件を変える

REXML::Document#encoding -> String (63019.0)

XML 宣言に含まれている XML 文書のエンコーディングを返します。

XML 宣言に含まれている XML 文書のエンコーディングを返します。

文書が XML 宣言を持たない場合はデフォルトの値
(REXML::XMLDecl.defaultで宣言されているもの)を返します。

=== 例
require 'rexml/document'
doc = REXML::Document.new(<<EOS)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<e />
EOS
doc.encoding # => "UTF-8"

REXML::Document#stand_alone? -> String (63019.0)

XML 宣言の standalone の値を文字列で返します。

XML 宣言の standalone の値を文字列で返します。

=== 例
require 'rexml/document'
doc = REXML::Document.new(<<EOS)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<e />
EOS
doc.stand_alone? # => "yes"

REXML::Document#version -> String (63019.0)

XML 宣言に含まれている XML 文書のバージョンを返します。

XML 宣言に含まれている XML 文書のバージョンを返します。

文書が XML 宣言を持たない場合はデフォルトの値
(REXML::XMLDecl.defaultで宣言されているもの)を返します。

=== 例
require 'rexml/document'
doc = REXML::Document.new(<<EOS)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<e />
EOS
doc.version # => "1.0"

REXML::Document#write(output = $stdout, indent = -1, transitive = false, ie_hack = false, encoding=nil) -> () (63019.0)

output に XML 文書を出力します。

output に XML 文書を出力します。

XML宣言、DTD、処理命令を(もしあるならば)含む文書を出力します。

注意すべき点として、
元の XML 文書が XML宣言を含んでいなくとも
出力される XML はデフォルトの XML 宣言を含んでいるべきであるが、
REXML は明示しない限り(つまりXML宣言を REXML::Document#add で
追加しない限り)
それをしない、ということである。XML-RPCのような利用法では
ネットワークバンドを少しでも節約する必要があるためである。

2.0.0以降ではキーワード引数による引数指定が可能です。

@param outpu...

REXML::Document#write(output: $stdout, indent: -1, transitive: false, ie_hack: false, encoding: nil) -> () (63019.0)

output に XML 文書を出力します。

output に XML 文書を出力します。

XML宣言、DTD、処理命令を(もしあるならば)含む文書を出力します。

注意すべき点として、
元の XML 文書が XML宣言を含んでいなくとも
出力される XML はデフォルトの XML 宣言を含んでいるべきであるが、
REXML は明示しない限り(つまりXML宣言を REXML::Document#add で
追加しない限り)
それをしない、ということである。XML-RPCのような利用法では
ネットワークバンドを少しでも節約する必要があるためである。

2.0.0以降ではキーワード引数による引数指定が可能です。

@param outpu...

絞り込み条件を変える

REXML::Document.entity_expansion_text_limit -> Integer (63019.0)

実体参照の展開による文字列の増分(テキストのバイト数)の 最大値を指定します。

実体参照の展開による文字列の増分(テキストのバイト数)の
最大値を指定します。

展開によって増分値がこの値を越えると
例外を発生させ、処理を中断します。

実体参照の展開処理を使った DoS 攻撃に対抗するための
仕組みです。

デフォルトは 10240 (byte) です。

このメソッドは Ruby 2.1 から deprecated になりました。
REXML::Security.entity_expansion_text_limit を使ってください。

@see REXML::Document.entity_expansion_text_limit=,
http://ww...

REXML::Document.entity_expansion_text_limit=(val) (63019.0)

実体参照の展開による文字列の増分(テキストのバイト数)の 最大値を指定します。

実体参照の展開による文字列の増分(テキストのバイト数)の
最大値を指定します。

展開によって増分値がこの値を越えると
例外を発生させ、処理を中断します。

実体参照の展開処理を使った DoS 攻撃に対抗するための
仕組みです。

デフォルトは 10240 (byte) です。

このメソッドは Ruby 2.1 から deprecated になりました。
REXML::Security.entity_expansion_text_limit= を使ってください。

@see REXML::Document.entity_expansion_text_limit
http://www...

REXML::Document#<<(child) -> () (63001.0)

子ノードを追加します。

子ノードを追加します。

追加できるものは
* XML宣言(REXML::XMLDecl)
* DTD(REXML::DocType)
* ルート要素
のいずれかです。

REXML::Document#add(child) -> () (63001.0)

子ノードを追加します。

子ノードを追加します。

追加できるものは
* XML宣言(REXML::XMLDecl)
* DTD(REXML::DocType)
* ルート要素
のいずれかです。

REXML::Document#doctype -> REXML::DocType | nil (63001.0)

文書の DTD を返します。

文書の DTD を返します。

文書が DTD を持たない場合は nil を返します。

絞り込み条件を変える

REXML::Document#expanded_name -> String (63001.0)

""(空文字列)を返します。

""(空文字列)を返します。

XMLの仕様上、このオブジェクトはexpanded name名前を持ちえません。

REXML::Document#name -> String (63001.0)

""(空文字列)を返します。

""(空文字列)を返します。

XMLの仕様上、このオブジェクトはexpanded name名前を持ちえません。

REXML::Document#node_type -> Symbol (63001.0)

シンボル :document を返します。

シンボル :document を返します。

REXML::Document#root -> REXML::Element | nil (63001.0)

文書のルート要素を返します。

文書のルート要素を返します。

文書がルート要素を持たない場合は nil を返します。

REXML::Document#xml_decl -> REXML::XMLDecl | nil (63001.0)

文書の XML 宣言を返します。

文書の XML 宣言を返します。

文書が XML 宣言を持たない場合は nil を返します。

絞り込み条件を変える

REXML::Document.parse_stream(source, listener) -> () (63001.0)

XML文書を source から読み込み、パースした結果を listener にコールバックで伝えます。

XML文書を source から読み込み、パースした結果を
listener にコールバックで伝えます。

このメソッドは
Parsers::StreamParser.new( source, listener ).parse
と同じ挙動をします。

コールバックの詳しい仕組みなどについては REXML::Parsers::StreamParser
および REXML::StreamListener を参照してください。

@param source 入力(文字列、IO、IO互換オブジェクト(StringIOなど))
@param listner コールバックオブジェクト

REXML::Document::DECLARATION -> REXML::XMLDecl (63001.0)

この定数は deprecated です。REXML::XMLDecl.default を 代わりに使ってください。

この定数は deprecated です。REXML::XMLDecl.default を
代わりに使ってください。

デフォルトとして使えるXML宣言オブジェクト。

REXML::Element#root_node -> REXML::Document | REXML::Node (358.0)

self が属する文書のルートノードを返します。

self が属する文書のルートノードを返します。

通常はその要素が属する文書(REXML::Document) オブジェクトが
返されます。

その要素が属する REXML::Document オブジェクトが存在しない
場合は木構造上のルートノードが返されます。

=== 例
require 'rexml/document'
doc = REXML::Document.new(<<EOS)
<root>
<children>
<grandchildren />
</children>
</root>
EOS

children = doc.get_...

REXML::Child#document -> REXML::Document | nil (352.0)

そのノードが属する document (REXML::Document) を返します。

そのノードが属する document (REXML::Document) を返します。

属する document が存在しない場合は nil を返します。

REXML::Element#document -> REXML::Document | nil (352.0)

self が属する文書(REXML::Document)オブジェクトを返します。

self が属する文書(REXML::Document)オブジェクトを返します。

属する文書がない場合には nil を返します。

絞り込み条件を変える

REXML::Text.new(arg, respect_whitespace = false, parent = nil, raw = nil, entity_filter = nil, illegal = REXML::Text::NEEDS_A_SECOND_CHECK) (73.0)

テキストノードオブジェクトを生成します。

テキストノードオブジェクトを生成します。

arg でノードの内容を指定します。
文字列の場合はそれが内容として使われます。
REXML::Text オブジェクトの場合はその内容が複製されます。

respect_whitespace に真を指定すると、arg に含まれる空白文字は保存されます。
偽の場合は空白はまとめられます。

raw は true, false, nil のいずれかを指定し、生成されるテキストノードが
raw モードであるかどうかを決めます。
true の場合、そのノードは raw モードであると解釈され、
テキストにはエスケープされていないXMLマークアップは
含まれ...

REXML::XMLDecl (73.0)

XML 宣言を表すクラス。

XML 宣言を表すクラス。

文書から XML 宣言を取り出すには REXML::Document#xml_decl を使います。

require 'rexml/document'
doc = REXML::Document.new(<<EOS)
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<e />
EOS

xml_decl = doc.xml_decl
xml_decl.version # => "1.0"
xml_decl.encoding # => "UTF-8"
xml_...

REXML::XMLDecl#dowrite -> () (49.0)

出力時(REXML::Document#write) に XML 宣言を省略しない よう指示します。

出力時(REXML::Document#write) に XML 宣言を省略しない
よう指示します。

@see REXML::XMLDecl#nowrite, REXML::XMLDecl#writethis

REXML::XMLDecl#nowrite -> () (49.0)

出力時(REXML::Document#write) に XML 宣言を省略する よう指示します。

出力時(REXML::Document#write) に XML 宣言を省略する
よう指示します。

@see REXML::XMLDecl#dowrite, REXML::XMLDecl#writethis

REXML::XMLDecl#writethis -> bool (49.0)

出力時(REXML::Document#write) に XML 宣言を出力する(省略しない) ならば真を返します。

出力時(REXML::Document#write) に XML 宣言を出力する(省略しない)
ならば真を返します。

@see REXML::XMLDecl#dowrite, REXML::XMLDecl#nowrite

絞り込み条件を変える

NEWS for Ruby 2.0.0 (37.0)

NEWS for Ruby 2.0.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。

NEWS for Ruby 2.0.0
このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。

それぞれのエントリーは参照情報があるため短いです。
十分な情報と共に書かれた全ての変更のリストは ChangeLog ファイルか bugs.ruby-lang.org の issue を参照してください。

== 1.9.3 以降の変更

=== 言語仕様の変更

* キーワード引数を追加しました
* %i, %I をシンボルの配列作成のために追加しました。(%w, %W に似ています)
* デフォルトのソースエンコーディングを US-ASCI...

REXML::CData.new(text, respect_whitespace = true, parent = nil) -> REXML::CData (37.0)

text をテキストとして持つ CData オブジェクトを生成します。

text をテキストとして持つ CData オブジェクトを生成します。

respect_whitespace に真を指定すると、text に含まれる空白文字は保存されます。
偽の場合は空白はまとめられます。

@param text テキスト文字列
@param respect_whitespace 空白を保存するかどうかを決める真偽値
@param parent 親ノード

=== 例
require 'rexml/document'
doc = REXML::Document.new(<<EOS)
<root />
EOS
doc.root.add(REXML::CD...

REXML::DocType#external_id -> String | nil (37.0)

DTD が外部サブセットを用いている場合は "SYSTEM", "PUBLIC" の いずれかの文字列を返します。

DTD が外部サブセットを用いている場合は "SYSTEM", "PUBLIC" の
いずれかの文字列を返します。

それ以外の場合は nil を返します。

require 'rexml/document'
doctype = REXML::Document.new(<<EOS).doctype
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
EOS
doctype.name #...

REXML::DocType#public -> String | nil (37.0)

DTD の公開識別子を返します。

DTD の公開識別子を返します。

DTD が公開識別子による外部サブセットを含んでいない場合は nil を返します。

require 'rexml/document'
doctype = REXML::Document.new(<<EOS).doctype
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
EOS
doctype.system # => "http://www.w...

REXML::DocType#system -> String | nil (37.0)

DTD のシステム識別子を返します。

DTD のシステム識別子を返します。

DTD が外部サブセットを含んでいない場合は nil を返します。

require 'rexml/document'
doctype = REXML::Document.new(<<EOS).doctype
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
EOS
doctype.system # => "http://www.w3.org/...

絞り込み条件を変える

REXML::DocType.new(source, parent = nil) -> REXML::DocType (37.0)

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

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

REXML::Source オブジェクトの場合は、Source オブジェクトが
保持しているDTDのテキストがパースされ、その内容によって DocType
オブジェクトが初期化されます。
REXML::DocType.new(Source.new(<<EOS))
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
EOS
このインターフェースは de...

REXML::Element#xpath -> String (37.0)

文書上の対象の要素にのみマッチする xpath 文字列を返します。

文書上の対象の要素にのみマッチする xpath 文字列を返します。

=== 例
require 'rexml/document'
doc = REXML::Document.new('<a><b/><c/></a>')
c = doc.root.elements[2] # <a> .. </a> の中の <c/> 要素
c # => <c/>
c.xpath # => "/a/c"
doc = REXML::Document.new('<a><b/><b/></a>')
b = doc.root.elements[2] # <a> .. </a> の中の2番目の ...

REXML::Elements#[](index, name = nil) -> REXML::Element | nil (37.0)

index が指し示している要素を返します。

index が指し示している要素を返します。

index には整数もしくは文字列を指定できます。

index に整数を指定した場合は index 番目の子要素を返します。
index は 1-origin です。つまり
最初の要素の index は 1 であり、 0 ではありません。
n 番目の要素の index は n であり、 n-1 ではありません。
これは XPath の仕様に合わせています。

index に文字列を指定した場合はその文字列を XPath と見なし、
それで指定された要素を返します。
XPath が複数の要素を指している場合は、そのうち一つを返します。
XPath...

REXML::Security.entity_expansion_limit -> Integer (37.0)

実体参照の展開回数の上限を返します。

実体参照の展開回数の上限を返します。

XML 文書(REXML::Document)ごとの展開回数がこの値を越えると
例外を発生させ、処理を中断します。

実体参照の展開処理を使った DoS 攻撃に対抗するための
仕組みです。

デフォルトは 10000 です。

@see REXML::Document.entity_expansion_limit

REXML::Security.entity_expansion_limit=(val) (37.0)

実体参照の展開回数の上限を指定します。

実体参照の展開回数の上限を指定します。

XML 文書(REXML::Document)ごとの展開回数がこの値を越えると
例外を発生させ、処理を中断します。

デフォルトは 10000 です。

@param val 設定する上限値(整数)
@see REXML::Document.entity_expansion_limit

絞り込み条件を変える

REXML::Text#doctype -> REXML::DocType | nil (37.0)

テキストノードが属する文書の DTD を返します。

テキストノードが属する文書の DTD を返します。

そのような文書(REXML::Document)が存在しない、すなわち
テキストノードの親ノードを辿っても REXML::Document に到達しない、
場合には nil を返します。

@see REXML::DocType

rexml/document (37.0)

DOM スタイルの XML パーサ。

DOM スタイルの XML パーサ。

REXML::Document.new で XML 文書から DOM ツリーを
構築し、ツリーのノードの各メソッドで文書の内容にアクセスします。

=== 例
以下のプログラムではブックマークの XML からデータを取り出します。
require 'rexml/document'
require 'pp'

Bookmark = Struct.new(:href, :title, :desc)

doc = REXML::Document.new(<<XML)
<?xml version="1.0" encoding="UTF...

REXML::Attributes#[](name) -> String | nil (19.0)

属性名nameの属性値を返します。

属性名nameの属性値を返します。

属性値ではなく REXML::Attribute オブジェクトが必要な場合は
REXML::Attributes#get_attribute を使ってください。

nameという属性名の属性がない場合は nil を返します。

@param name 属性名(文字列)

=== 例

require 'rexml/document'

doc = REXML::Document.new(<<EOS)
<root xmlns:foo="http://example.org/foo"
xmlns:bar="http://exam...

REXML::Attributes#[]=(name, value) (19.0)

指定した属性を更新します。

指定した属性を更新します。

name で属性の名前を、value で値を更新します。
既に同じ名前の属性がある場合は上書きされ、
そうでない場合は属性が追加されます。

=== 例
require 'rexml/document'

doc = REXML::Document.new(<<-EOS)
<root xmlns:foo="http://example.org/foo"
xmlns:bar="http://example.org/bar">
<a foo:att='1' bar:att='2' att='&lt;'/>
</root>
...

REXML::Attributes#delete(attribute) -> REXML::Element (19.0)

指定した属性を取り除きます。

指定した属性を取り除きます。

attribute で取り除く属性を指定します。
文字列もしくは REXML::Attribute オブジェクトを指定します

self が属する要素(REXML::Element)を返します。

@param attribute 取り除く属性(文字列もしくは REXML::Attribute オブジェクト)

=== 例
require 'rexml/document'

doc = REXML::Document.new(<<-EOS)
<root xmlns:foo="http://example.org/foo"
xml...

絞り込み条件を変える

REXML::Attributes#delete_all(name) -> [REXML::Attribute] (19.0)

name という名前を持つ属性をすべて削除します。

name という名前を持つ属性をすべて削除します。

削除された属性を配列で返します。

@param name 削除する属性の名前

=== 例
require 'rexml/document'

doc = REXML::Document.new(<<-EOS)
<root xmlns:foo="http://example.org/foo"
xmlns:bar="http://example.org/bar">
<a foo:att='1' bar:att='2' att='&lt;'/>
</root>
EOS
a = doc.ge...

REXML::Attributes#each {|name, value| ... } -> () (19.0)

各属性の名前と値に対しブロックを呼び出します。

各属性の名前と値に対しブロックを呼び出します。

名前には expanded_name(REXML::Namespace#exapnded_name)が
渡されます。

=== 例
require 'rexml/document'

doc = REXML::Document.new(<<EOS)
<root xmlns:foo="http://example.org/foo"
xmlns:bar="http://example.org/bar">
<a foo:att='1' bar:att='2' att='&lt;'/>
</root>
E...

REXML::Attributes#each_attribute {|attribute| ... } -> () (19.0)

各属性に対しブロックを呼び出します。

各属性に対しブロックを呼び出します。

個々の属性は REXML::Attribute オブジェクトで渡されます。

=== 例
require 'rexml/document'

doc = REXML::Document.new(<<EOS)
<root xmlns:foo="http://example.org/foo"
xmlns:bar="http://example.org/bar">
<a foo:att='1' bar:att='2' att='&lt;'/>
</root>
EOS
a = doc.get_element...

REXML::Attributes#get_attribute(name) -> Attribute | nil (19.0)

name という名前の属性を取得します。

name という名前の属性を取得します。

name という名前を持つ属性がない場合は nil を返します。

@param name 属性名(文字列)
@see REXML::Attributes#[]

=== 例
require 'rexml/document'

doc = REXML::Document.new(<<-EOS)
<root xmlns:foo="http://example.org/foo"
xmlns:bar="http://example.org/bar">
<a foo:att='1' bar:att='2' att='...

REXML::Attributes#get_attribute_ns(namespace, name) -> REXML::Attribute | nil (19.0)

namespace と name で特定される属性を返します。

namespace と name で特定される属性を返します。

namespace で名前空間を、 name で prefix を含まない属性名を
指定します。

指定された属性が存在しない場合は nil を返します。

XML プロセッサが prefix を置き換えてしまった場合でも、このメソッドを
使うことで属性を正しく指定することができます。

@param namespace 名前空間(URI, 文字列)
@param name 属性名(文字列)

=== 例
require 'rexml/document'

doc = REXML::Document.new(<<-E...

絞り込み条件を変える

REXML::Attributes#length -> Integer (19.0)

属性の個数を返します。

属性の個数を返します。


=== 例
require 'rexml/document'

doc = REXML::Document.new(<<EOS)
<root xmlns:foo="http://example.org/foo"
xmlns:bar="http://example.org/bar">
<a foo:att='1' bar:att='2' att='&lt;'/>
</root>
EOS
a = doc.get_elements("/root/a").first

p a.attributes.length...

REXML::Attributes#namespaces -> { String => String } (19.0)

self の中で宣言されている名前空間の集合を返します。

self の中で宣言されている名前空間の集合を返します。

返り値は名前空間の prefix をキーとし、URI を値とする
Hash を返します。

=== 例
require 'rexml/document'

doc = REXML::Document.new(<<EOS)
<root xmlns:foo="http://example.org/foo"
xmlns:bar="http://example.org/bar">
<a foo:att='1' bar:att='2' att='&lt;'/>
</root>
EOS
a ...

REXML::Attributes#prefixes -> [String] (19.0)

self の中で宣言されている prefix の集合を 文字列の配列で返します。

self の中で宣言されている prefix の集合を
文字列の配列で返します。

self が属する要素より上位の要素で定義されているものは含みません。

=== 例
require 'rexml/document'

doc = REXML::Document.new(<<EOS)
<root xmlns:foo="http://example.org/foo"
xmlns:bar="http://example.org/bar">
<a foo:att='1' bar:att='2' att='&lt;'/>
</root>
EOS
...

REXML::Attributes#size -> Integer (19.0)

属性の個数を返します。

属性の個数を返します。


=== 例
require 'rexml/document'

doc = REXML::Document.new(<<EOS)
<root xmlns:foo="http://example.org/foo"
xmlns:bar="http://example.org/bar">
<a foo:att='1' bar:att='2' att='&lt;'/>
</root>
EOS
a = doc.get_elements("/root/a").first

p a.attributes.length...

REXML::Attributes#to_a -> [Attribute] (19.0)

属性の配列を返します。

属性の配列を返します。

=== 例
require 'rexml/document'
doc = REXML::Document.new("<a x='1' y='2' z='3' />")
doc.root.attributes.to_a # => [x='1', y='2', z='3']

絞り込み条件を変える

REXML::CData#to_s -> String (19.0)

テキスト文字列を返します。

テキスト文字列を返します。

@see REXML::Text#value, REXML::Text#to_s

=== 例
require 'rexml/document'
doc = REXML::Document.new(<<EOS)
<root><![CDATA[foobar baz]]></root>
EOS
doc.root[0].class # => REXML::CData
doc.root[0].value # => "foobar baz"

REXML::CData#value -> String (19.0)

テキスト文字列を返します。

テキスト文字列を返します。

@see REXML::Text#value, REXML::Text#to_s

=== 例
require 'rexml/document'
doc = REXML::Document.new(<<EOS)
<root><![CDATA[foobar baz]]></root>
EOS
doc.root[0].class # => REXML::CData
doc.root[0].value # => "foobar baz"

REXML::Comment (19.0)

XML コメントを表すクラス。

XML コメントを表すクラス。

コメントとは <!-- と --> で挟まれたテキストです。

require 'rexml/document'
doc = REXML::Document.new(<<EOS)
<!-- xx -->
<root>
<!-- yy -->
text
<!-- zz -->
</root>
EOS

doc[0].string # => " xx "
doc.root[1].string # => " yy "
doc.root[3].string # => " zz "

REXML::DocType#attribute_of(element, attribute) -> String | nil (19.0)

DTD 内の属性リスト宣言で、 element という名前の要素の attribute という 名前の属性のデフォルト値を返します。

DTD 内の属性リスト宣言で、 element という名前の要素の attribute という
名前の属性のデフォルト値を返します。

elementという名前の要素の属性値は宣言されていない、
elementという名前の要素にはattributeという名前の属性が宣言されていない、
もしくはデフォルト値が宣言されていない、のいずれかの場合は nil を返します。

@param element 要素名(文字列)
@param attribute 属性名(文字列)

=== 例
require 'rexml/document'

doctype = REXML::Document....

REXML::DocType#attributes_of(element) -> [REXML::Attribute] (19.0)

DTD 内の属性リスト宣言で、 element という名前の要素に対し宣言されている 属性の名前とデフォルト値を REXML::Attribute の配列で返します。

DTD 内の属性リスト宣言で、 element という名前の要素に対し宣言されている
属性の名前とデフォルト値を REXML::Attribute の配列で返します。

名前とデフォルト値のペアは、各 Attribute オブジェクトの
REXML::Attribute#name と
REXML::Attribute#value で表現されます。

=== 例
require 'rexml/document'

doctype = REXML::Document.new(<<EOS).doctype
<!DOCTYPE books [
<!ELEMENT book (com...

絞り込み条件を変える

REXML::DocType#context -> { Symbol => object } (19.0)

DTD が属する文書の「コンテキスト」を返します。

DTD が属する文書の「コンテキスト」を返します。

具体的には親ノードである REXML::Document オブジェクトの
REXML::Element#context を返します。

コンテキストの具体的な内容については REXML::Element#context を
参照してください。

REXML::DocType#entities -> { String => REXML::Entity } (19.0)

DTD で宣言されている実体の集合を Hash で返します。

DTD で宣言されている実体の集合を Hash で返します。

返される Hash は実体参照名をキーとし、対応する REXML::Entity オブジェクト
を値とするハッシュテーブルです。

これには、XML のデフォルトの実体(gt, lt, quot, apos)も含まれています。

=== 例
doctype = REXML::Document.new(<<EOS).doctype
<!DOCTYPE foo [
<!ENTITY bar "barbarbarbar">
]>
EOS

p doctype.entities # => { "gt" => #...

REXML::DocType#entity(name) -> String | nil (19.0)

name という実体参照名を持つ実体を文字列で返します。

name という実体参照名を持つ実体を文字列で返します。

返される文字列は非正規化(REXML::Entity#unnormalized 参照)
された文字列が返されます。

name という名前を持つ実体が存在しない場合には nil を返します。

@param name 実体参照名(文字列)

=== 例
doctype = REXML::Document.new(<<EOS).doctype
<!DOCTYPE foo [
<!ENTITY bar "barbarbarbar">
]>
EOS
p doctype.entity("bar") # => "ba...

REXML::DocType#name -> String (19.0)

ルート要素名を返します。

ルート要素名を返します。

document = REXML::Document.new(<<EOS)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
EOS
doctype = document.doctype
p doctype.name # => "html"

REXML::DocType#write(output, indent = 0, transitive = false, ie_hack = false) -> () (19.0)

output に DTD を出力します。

output に DTD を出力します。

このメソッドは deprecated です。REXML::Formatter で
出力してください。

@param output 出力先の IO オブジェクト
@param indent インデントの深さ。指定しないでください。
@param transitive 無視されます。指定しないでください。
@param ie_hack 無視されます。指定しないでください。

=== 例
require 'rexml/document'

doctype = REXML::Document.new(<<EOS).doctype
<!DOC...

絞り込み条件を変える

REXML::Element#add_attribute(attr) -> () (19.0)

要素の属性を追加します。 同じ名前の属性がすでにある場合はその属性を新しい 属性で置き換えます。

要素の属性を追加します。
同じ名前の属性がすでにある場合はその属性を新しい
属性で置き換えます。

引数の与えかたは2通りあります。
要素名と値の2つの文字列で渡す方法と REXML::Attribute オブジェクトを
渡す方法です。

文字列2つで指定する場合、属性値は unnormalized な文字列を渡す必要があります。

@param key 属性名(文字列)
@param value 属性値(文字列)
@param attr 属性(REXML::Attribute オブジェクト)

=== 例
require 'rexml/document'
doc = REXML::D...

REXML::Element#add_attribute(key, value) -> () (19.0)

要素の属性を追加します。 同じ名前の属性がすでにある場合はその属性を新しい 属性で置き換えます。

要素の属性を追加します。
同じ名前の属性がすでにある場合はその属性を新しい
属性で置き換えます。

引数の与えかたは2通りあります。
要素名と値の2つの文字列で渡す方法と REXML::Attribute オブジェクトを
渡す方法です。

文字列2つで指定する場合、属性値は unnormalized な文字列を渡す必要があります。

@param key 属性名(文字列)
@param value 属性値(文字列)
@param attr 属性(REXML::Attribute オブジェクト)

=== 例
require 'rexml/document'
doc = REXML::D...

REXML::Element#add_element(element, attrs = nil) -> Element (19.0)

子要素を追加します。

子要素を追加します。

element として追加する要素を指定します。
REXML::Element オブジェクトもしくは文字列を指定します。

element として REXML::Element オブジェクトを指定した場合、それが追加されます。
文字列を指定した場合は、それを要素名とする要素を追加します。

attrs に { String => String } という Hash を渡すと、
追加する要素の属性を指定できます。

子要素の最後に追加されます。

返り値は追加された要素です。

@param element 追加する要素
@param attrs 追加する要素に設定する...

REXML::Element#attribute(name, namespace = nil) -> REXML::Attribute | nil (19.0)

name で指定される属性を返します。

name で指定される属性を返します。

属性は REXML::Attribute オブジェクトの形で返します。

name は "foo:bar" のように prefix を指定することができます。

namespace で名前空間の URI を指定することで、その名前空間内で
name という属性名を持つ属性を指定できます。

指定した属性名の属性がない場合は nil を返します。

@param name 属性名(文字列)
@param namespace 名前空間のURI(文字列)
=== 例
require 'rexml/document'

doc = REXML::...

REXML::Element#delete_element(element) -> REXML::Element (19.0)

子要素を削除します。

子要素を削除します。

element で削除する要素を指定できます。整数、文字列、REXML::Element
オブジェクトのいずれかが指定できます。

REXML::Element を指定すると、その要素が削除されます。
整数を指定すると、element 番目の要素を削除します(1-originで指定します)。
文字列を指定すると、XPath としてマッチする要素を削除します。
複数の要素がマッチする場合はそのうち1つが削除されます。

@param element 削除する要素
@see REXML::Elements#delete

require 'rexml/document...

絞り込み条件を変える

REXML::Element#delete_namespace(namespace = "xmlns") -> self (19.0)

名前空間を要素から削除します。

名前空間を要素から削除します。

削除可能な名前空間はそのノードで宣言されているもののみです。
上位の要素で宣言されているものは削除できません。

引数を省略した場合はデフォルトの名前空間を削除します。

@param namespace 削除する名前空間の prefix

=== 例
require 'rexml/document'
doc = REXML::Document.new "<a xmlns:foo='bar' xmlns='twiddle'/>"
doc.root.delete_namespace
doc.to_s # => "<a xmlns:foo='bar...

REXML::Element#each_element_with_attribute(key, value = nil, max = 0, name = nil) {|element| ... } -> () (19.0)

特定の属性を持つすべての子要素を引数としてブロックを呼び出します。

特定の属性を持つすべての子要素を引数としてブロックを呼び出します。

key で指定した属性名の属性を持つ要素のみを対象とします。
value を指定すると、keyで指定した属性名を持つ属性の値がvalueである
もののみを対象とします。
maxを指定すると、対象となる子要素の先頭 max 個のみが対象となります。
name を指定すると、それは xpath 文字列と見なされ、
それにマッチするもののみが対象となります。

max に 0 を指定すると、max の指定は無視されます(0個ではありません)。

@param key 属性名(文字列)
@param value 属性値(文字列)
...

REXML::Element#each_element_with_text(text = nil, max = 0, name = nil) {|element| ... } -> () (19.0)

テキストを子ノードとして 持つすべての子要素を引数としてブロックを呼び出します。

テキストを子ノードとして
持つすべての子要素を引数としてブロックを呼び出します。

text を指定すると、テキストの内容が text であるもののみを対象とします。
maxを指定すると、対象となる子要素の先頭 max 個のみが対象となります。
name を指定すると、それは xpath 文字列と見なされ、
それにマッチするもののみが対象となります。

max に 0 を指定すると、max の指定は無視されます(0個ではありません)。

@param text テキストの中身(文字列)
@param max ブロック呼出の対象とする子要素の最大個数
@param name xpath文字列

...

REXML::Element#get_text(path = nil) -> REXML::Text | nil (19.0)

先頭のテキスト子ノードを返します。

先頭のテキスト子ノードを返します。

raw モードの設定は無視され、常に正規化されたテキストを返します。
REXML::Text#value も参照してください。

path を渡した場合は、その XPath 文字列で指定される
テキストノードの文字列を返します。

テキストノードがない場合には nil を返します。

@param path XPath文字列
@see REXML::Element#text

=== 例
require 'rexml/document'
doc = REXML::Document.new "<p>some text <b>this is bold!...

REXML::Element#has_elements? -> bool (19.0)

self が一つでも子要素を持つならば true を返します。

self が一つでも子要素を持つならば true を返します。

=== 例
require 'rexml/document'
doc = REXML::Document.new("<a><b/><c>Text</c></a>")
doc.root.has_elements? # => true
doc.elements["/a/b"].has_elements? # => false
# /a/c はテキストノードしか持たないので false である
doc.elements["/a/c"].has_elements? # => f...

絞り込み条件を変える

REXML::Element#namespace(prefix=nil) -> String (19.0)

self の文脈で prefix が指している名前空間の URI を返します。

self の文脈で prefix が指している名前空間の URI を返します。

prefix を省略すると、デフォルトの名前空間の URI を返します。

prefix で指示される名前空間の宣言が存在しない場合は nil を返します。

require 'rexml/document'
doc = REXML::Document.new("<a xmlns='1' xmlns:y='2'><b/><c xmlns:z='3'/><y:d /></a>")
b = doc.elements['//b']
b.namespace # => "1"
b.namesp...

REXML::Element#namespaces -> {String => String} (19.0)

self の文脈で定義されている名前空間の情報を返します。

self の文脈で定義されている名前空間の情報を返します。

対象の要素とその外側の要素で定義されている名前空間を、{ prefix => 識別子 }
というハッシュテーブルで返します。

require 'rexml/document'
doc = REXML::Document.new("<a xmlns:x='1' xmlns:y='2'><b/><c xmlns:z='3'/></a>")
doc.elements['//b'].namespaces # => {"x"=>"1", "y"=>"2"}

REXML::Element#next_element -> Element | nil (19.0)

次の兄弟要素を返します。

次の兄弟要素を返します。

次の要素が存在しない場合は nil を返します。

require 'rexml/document'
doc = REXML::Document.new '<a><b/>text<c/></a>'
doc.root.elements['b'].next_element # => <c/>
doc.root.elements['c'].next_element # => nil

REXML::Element#prefixes -> [String] (19.0)

self の文脈で定義されている prefix を文字列の配列を返します。

self の文脈で定義されている prefix を文字列の配列を返します。

対象の要素とその外側の要素で定義されている prefix を返します。

=== 例
require 'rexml/document'
doc = REXML::Document.new("<a xmlns:x='1' xmlns:y='2'><b/><c xmlns:z='3'/></a>")
doc.elements['//b'].prefixes # => ["x", "y"]

REXML::Element#root -> REXML::Element (19.0)

self が属する文書のルート要素を返します。

self が属する文書のルート要素を返します。

=== 例
require 'rexml/document'
doc = REXML::Document.new(<<EOS)
<root>
<children>
<grandchildren />
</children>
</root>
EOS

children = doc.get_elements("/root/children").first
children.name # => "children"
children.root.name # => "root"
grandchil...

絞り込み条件を変える

REXML::Element#text(path = nil) -> String | nil (19.0)

先頭のテキスト子ノードの文字列を返します。

先頭のテキスト子ノードの文字列を返します。

テキストノードを複数保持している場合は最初のノードにしか
アクセスできないことに注意してください。

raw モードの設定は無視され、常に正規化されたテキストを返します。
REXML::Text#value も参照してください。

path を渡した場合は、その XPath 文字列で指定される
テキストノードの文字列を返します。

テキストノードがない場合には nil を返します。

@param path XPath文字列
@see REXML::Element#get_text

=== 例
require 'rexml/document'...

REXML::Element#text=(text) (19.0)

「先頭の」テキストノードを text で置き換えます。

「先頭の」テキストノードを text で置き換えます。

テキストノードを1つ以上保持している場合はそのうち
最初のノードを置き換えます。

要素がテキストノードを保持していない場合は新たなテキストノードが追加されます。

text には文字列、REXML::Text、nil のいずれかが指定できます。
REXML::Text オブジェクトを指定した場合には、それが設定され、
文字列を指定した場合には
REXML::Text.new(text, whitespace(), nil, raw())
で生成される Text オブジェクトが設定されます。
nil を指定すると最初のテキストノードが削...

REXML::Elements#[]=(index, element) (19.0)

集合に要素 element を追加/更新します。

集合に要素 element を追加/更新します。

index で要素の更新する位置を指定します。
index には整数、文字列が指定できます。
整数を指定した場合は index 番目の要素を変更します(1-originです)。
文字列の場合は XPath としてマッチした要素を更新します。

整数/文字列どちらの場合でも対応する要素が存在しない場合は、
末尾に追加されます。

@param index 要素を更新する位置
@param element 要素(REXML::Elementオブジェクト)

require 'rexml/document'
doc = REXML::Doc...

REXML::Elements#delete(element) -> Element (19.0)

element で指定した子要素を取り除きます。

element で指定した子要素を取り除きます。

element には、REXML::Element、整数、文字列が指定できます。
Element オブジェクトを指定した場合は、その子要素を取り除きます。
整数を指定した場合には element 番目の子要素を削除します(1-originです)。
文字列を指定した場合は、削除する要素を XPath で指定します。
XPathが複数の要素を指している場合は、そのうち一つを削除します。

取り除かれた要素を返します。

XPath で指定した場合、子要素ではない要素も取り除けることに注意してください。

@param element 削除する要素...

REXML::Elements#delete_all(xpath) -> [REXML::Element] (19.0)

xpath で指定した XPath 文字列にマッチする要素をすべて取り除きます。

xpath で指定した XPath 文字列にマッチする要素をすべて取り除きます。

@param xpath 取り除く要素を指し示す XPath 文字列
=== 例
require 'rexml/document'
doc = REXML::Document.new('<a><c/><c/><c/><c/></a>')
doc.elements.delete_all("a/c") # => [<c/>, <c/>, <c/>, <c/>]
doc.to_s # => "<a/>"

絞り込み条件を変える

REXML::Elements#each(xpath = nil) {|element| ... } -> [REXML::Elements] (19.0)

全ての子要素に対しブロックを呼び出します。

全ての子要素に対しブロックを呼び出します。

xpath を指定した場合には、その XPath 文字列に
マッチする要素に対しブロックを呼び出します。

REXML::XPath.each などとは異なり、要素以外の
テキストノードなどはすべて無視されることに注意してください。

@param xpath XPath文字列

=== 例
require 'rexml/document'
require 'rexml/xpath'
doc = REXML::Document.new '<a><b/><c/><d/>sean<b/><c/><d/></a>'
# <b/>,<c/>...

REXML::Elements#size -> Integer (19.0)

保持している要素の個数を返します。

保持している要素の個数を返します。

require 'rexml/document'
doc = REXML::Document.new '<a>sean<b/>elliott<b/>russell<b/></a>'
# doc.root は3つの要素と3つのテキストノードを持つため、6を返す
doc.root.size # => 6
# そのうち要素は3つであるため、以下は3を返す
doc.root.elements.size # => 3

REXML::Elements#to_a(xpath = nil) -> [REXML::Element] (19.0)

すべての子要素の配列を返します。

すべての子要素の配列を返します。

xpath を指定した場合は、その XPath 文字列に
マッチする要素の配列を返します。

REXML::Elements#each と同様、REXML::XPath.match などと
異なり、要素以外の子ノードは無視されます。

@param xpath XPath文字列

=== 例
require 'rexml/document'
require 'rexml/xpath'
doc = REXML::Document.new '<a>sean<b/>elliott<c/></a>'
doc.root.elements.to_a ...

REXML::Entity (19.0)

XML における実体(エンティティ、entity)の宣言(declaration)を表わすクラス。

XML における実体(エンティティ、entity)の宣言(declaration)を表わすクラス。

DTD(REXML::DocType)内の実体宣言に対応するものです。

=== 例

require 'rexml/document'

doc = REXML::Document.new(<<EOS)
<!DOCTYPE document [
<!ENTITY f "foo bar baz">
<!ENTITY x SYSTEM "x.txt">
<!ENTITY y SYSTEM "y.png" NDATA PNG>
<!ENTITY % z "zzz">...

REXML::Entity.new(array) -> REXML::Entity (19.0)

新たな Entity オブジェクトを生成して返します。

新たな Entity オブジェクトを生成して返します。

name, value で実体の名前とその値を定義します。
parent はその entity オブジェクトが属するノードを渡します。
reference でその実体宣言がパラメータ実体(parameter entity)かどうかを指定します。

このコンストラクタでは単純な内部実体(internal entity)宣言のみを実現できます。

それ以外の内容を保持する Entity オブジェクトが欲しい場合は、
文書に適切な DTD を含めておいてそれを REXML::Document.new で
パースするようにしてください。

配列...

絞り込み条件を変える

REXML::Entity.new(name, value, parent=nil, reference=false) -> REXML::Entity (19.0)

新たな Entity オブジェクトを生成して返します。

新たな Entity オブジェクトを生成して返します。

name, value で実体の名前とその値を定義します。
parent はその entity オブジェクトが属するノードを渡します。
reference でその実体宣言がパラメータ実体(parameter entity)かどうかを指定します。

このコンストラクタでは単純な内部実体(internal entity)宣言のみを実現できます。

それ以外の内容を保持する Entity オブジェクトが欲しい場合は、
文書に適切な DTD を含めておいてそれを REXML::Document.new で
パースするようにしてください。

配列...

REXML::ExternalEntity (19.0)

DTD 内の宣言でパラメータ実体参照を使って宣言が されているものを表わすクラスです。

DTD 内の宣言でパラメータ実体参照を使って宣言が
されているものを表わすクラスです。

例えば、以下の DTD 宣言における %HTMLsymbol が
それにあたります。
<!ENTITY % HTMLsymbol PUBLIC
"-//W3C//ENTITIES Symbols for XHTML//EN"
"xhtml-symbol.ent">
%HTMLsymbol;
=== 例
require 'rexml/document'

doctype = REXML::Document.new(<<EOS).doctype
<!DOCTYPE ...

REXML::Formatters::Default (19.0)

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

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::Formatte...

REXML::Formatters::Pretty (19.0)

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

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

REXML::Formatters::Default と
異なり見た目のためテキストの改行や空白を修正して出力します。

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

pretty_formatter = ...

REXML::Formatters::Transitive (19.0)

XMLドキュメントをテキストの内容を変えずに 多少の整形を加えて出力するクラスです。

XMLドキュメントをテキストの内容を変えずに
多少の整形を加えて出力するクラスです。

これが有用な場合はあまりないでしょう。
整形されていない XML を整形したいが、
テキストの空白は改行は変えたくない場合には役にたつかもしれません。
ただ、ほとんどの場合は奇妙な出力結果になるでしょう。

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

絞り込み条件を変える

REXML::Instruction (19.0)

XML 処理命令(XML Processing Instruction, XML PI)を表すクラス。

XML 処理命令(XML Processing Instruction, XML PI)を表すクラス。

XML 処理命令 とは XML 文書中の <? と ?> で挟まれた部分のことで、
アプリケーションへの指示を保持するために使われます。

XML 宣言(文書先頭の <?xml version=... ?>)はXML処理命令ではありませんが、
似た見た目を持っています。

require 'rexml/document'
doc = REXML::Document.new(<<EOS)
<?xml version="1.0" encoding="utf-8" ?>
<?xm...

REXML::Instruction#content -> String | nil (19.0)

XML 処理命令の内容を返します。

XML 処理命令の内容を返します。

=== 例
require 'rexml/document'
doc = REXML::Document.new(<<EOS)
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/css" href="style.css"?>
<?foobar?>
<root />
EOS
doc[2] # => <?p-i xml-stylesheet ...?>
doc[2].target # => "xml-stylesheet"
doc[2]...

REXML::Instruction#target -> String (19.0)

XML 処理命令のターゲットを返します。

XML 処理命令のターゲットを返します。

=== 例
require 'rexml/document'
doc = REXML::Document.new(<<EOS)
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/css" href="style.css"?>
<root />
EOS
doc[2] # => <?p-i xml-stylesheet ...?>
doc[2].target # => "xml-stylesheet"
doc[2].content #...

REXML::NotationDecl (19.0)

DTD の記法宣言を表すクラスです。

DTD の記法宣言を表すクラスです。


=== 例
require 'rexml/document'

doctype = REXML::Document.new(<<EOS).doctype
<!DOCTYPE foo [
<!NOTATION type-image-svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!NOTATION type-image-gif PUBLIC "image/gif"...

REXML::ParseException (19.0)

XML のパースに失敗したときに生じる例外です。

XML のパースに失敗したときに生じる例外です。

require 'rexml/document'
begin
REXML::Document.new("<a>foo\n</b></a> ")
rescue REXML::ParseException => ex
ex.position # => 16
ex.line # => 2
ex.context # => [16, 2, 2]
end

絞り込み条件を変える

<< 1 2 > >>