Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > rexml/documentライブラリ
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-8" ?> <xbel version="1.0"> <bookmark href="http://www.ruby-lang.org/ja/"> <title>オブジェクト指向スクリプト言語 Ruby</title> <desc>Rubyの公式サイト</desc> </bookmark> <bookmark href="http://rurema.clear-code.com/"> <title>最速Rubyリファレンスマニュアル検索! | るりまサーチ</title> <desc>Rubyリファレンスマニュアルを全文検索できる。 とても便利。 </desc> </bookmark> <bookmark href="https://github.com/rurema/bitclust"> <title>rurema/bitclust · GitHub</title> </bookmark> <bookmark href="https://rubygems.org/gems/bitclust-core" /> </xbel> XML bookmarks = REXML::XPath.match(doc, "/xbel/bookmark").map do |bookmark| href = bookmark.attribute("href").value title_element = bookmark.elements["title"] title = title_element ? title_element.text : nil desc_element = bookmark.elements["desc"] desc = desc_element ? desc_element.text : nil Bookmark.new(href, title, desc) end pp bookmarks # >> [#<struct Bookmark # >> href="http://www.ruby-lang.org/ja/", # >> title="オブジェクト指向スクリプト言語 Ruby", # >> desc="Rubyの公式サイト">, # >> #<struct Bookmark # >> href="http://rurema.clear-code.com/", # >> title="最速Rubyリファレンスマニュアル検索! | るりまサーチ", # >> desc="Rubyリファレンスマニュアルを全文検索できる。\nとても便利。\n ">, # >> #<struct Bookmark # >> href="https://github.com/rurema/bitclust", # >> title="rurema/bitclust · GitHub", # >> desc=nil>, # >> #<struct Bookmark # >> href="https://rubygems.org/gems/bitclust-core", # >> title=nil, # >> desc=nil>]
REXML::Attribute | 要素(REXML::Element)の属性を表すクラスです。 |
REXML::Child | あるノード(親ノード)に子ノードとして保持されている ノードを表すクラスです。 |
REXML::AttlistDecl | DTD の属性リスト宣言を表すクラスです。 |
REXML::Comment | XML コメントを表すクラス。 |
REXML::Declaration | DTD に含まれる各種宣言ノードを表すクラスです。 |
REXML::ElementDecl | DTD の要素宣言(Element Declaration)を表すクラスです。 |
REXML::Entity | XML における実体(エンティティ、entity)の宣言(declaration)を表わすクラス。 |
REXML::ExternalEntity | DTD 内の宣言でパラメータ実体参照を使って宣言が されているものを表わすクラスです。 |
REXML::Instruction | XML 処理命令(XML Processing Instruction, XML PI)を表すクラス。 |
REXML::NotationDecl | DTD の記法宣言を表すクラスです。 |
REXML::Parent | あるノードの親ノードとなりうるノードを表すクラスです。 |
REXML::DocType | XML の DTD(文書型定義、Document Type Definition)を表すクラスです。 |
REXML::Element | XML の要素(エレメント、element)を表すクラス。 |
REXML::Document | XMLの完全な文書(ドキュメント)を表すクラス。 |
REXML::Text | XML のテキストノードを表すクラスです。 |
REXML::CData | XML の cdata セクションを表すクラス |
REXML::XMLDecl | XML 宣言を表すクラス。 |
REXML::Elements | 要素の集合を表すクラスです。 |
REXML::Formatters::Default | XMLドキュメントを(文字列として)出力するクラスです。 |
REXML::Formatters::Pretty | XMLドキュメントを(文字列として)見た目良く出力するクラスです。 |
REXML::Formatters::Transitive | XMLドキュメントをテキストの内容を変えずに 多少の整形を加えて出力するクラスです。 |
REXML::Output | 出力先を wrap するクラスです。 内部用なのでユーザは使わないでください。 |
REXML::Parsers::BaseParser | 内部用です。使わないでください。 |
REXML::Parsers::TreeParser | 内部用です。使わないでください。 |
REXML::Parsers::XPathParser | XPath 文字列をパースするための内部的なクラスです。 |
REXML::Source | 内部用なのでユーザは使わないでください。 |
REXML::IOSource | 内部用なのでユーザは使わないでください。 |
REXML::SourceFactory | 内部用なのでユーザは使わないでください。 |
REXML::XPath | XPath を取り扱うためのクラスです。 |
REXML::Attributes | 属性の集合を表すクラスです。 |
REXML::Encoding | rexml ライブラリでエンコーディングを取り扱うための内部的なモジュールです。 |
REXML::EntityConst | XML の標準的な実体(エンティティ)を保持しているモジュールです。 |
REXML::Functions | 内部用なのでユーザは使わないでください。 |
REXML::Namespace | XML 名前空間によって管理される「名前」を持つようなノードを 表すモジュール。 |
REXML::Node | XML tree 上のノードを表すモジュール。 |
REXML::Security | REXML のセキュリティ関連の限界値を設定/参照するためのモジュールです。 |
REXML::XMLTokens | XML をパースするための正規表現を保持しているモジュールです。 |