Rubyでxmlファイル読み込みを行う方法:rexml

RubyでXMLファイルを扱う方法について説明します。

Rubyでは組み込みライブラリに、XMLファイルを扱うrexmlライブラリがあり、これを使ってXMLファイルを読み込みます。

rexmlライブラリを使ってXMLファイルを扱う方法

rexmlライブラリは、gemなどでインストールすることなくrequireだけで使えます。正確には、rexmlは名前空間モジュールで、REXMLのサブライブラリであるDocumentを使います。

以下のように、XMLを指定したインスタンスを作成すると、DOMツリーが構築されます。

ファイルを指定する場合は、以下のようになります。

XMLの要素を取得する

XMLの解析では、XPathによる方法、CSSセレクタによる方法などが一般的に使われていますが、rexmlはXPathによる解析に対応しています。

以下のサンプルコードは、ヒアドキュメントでXMLを記述した変数xmlを引数に指定し、rexmlの新規インスタンスとしてパースし、変数docに入れています。

これでXML文書を解析する準備ができました。

次から、rexmlを使った要素の取得について紹介します。

n番目の要素を指定する

2番目の<a>タグの直下、2番目にある<b>要素の内容「ぶたにく」を取得したいとします。

このように、一般的なXPathによる指定で、簡単に必要な部分を取り出すことができます。

1番目の要素を取得する

次のように添字を付けないと、1番めの要素が対象となります。

要素をすべて取得する

<b>要素の内容をすべて取得したいときは、次のように指定します。


Welcome to UX MILK

UX MILKはより良いサービスやプロダクトを作りたい人のためのメディアです。

このサイトについて

UX MILKのディレクター募集