簡単なXMLファイルの処理についてのmemo

はじめに

XMLから簡単な要素の抽出をする必要があってそれの備忘ログ的にメモ

手順

pryで作業しています。

gem rexml の利用

まずgemの読み込み

require 'rexml/document'

xmlファイルの読み込み

引数にxmlを開いたものを渡し、REXML::Documentのオブジェクトを作成するみたいです。

doc = REXML::Document.new(open("filepath")

内容の読み込み

上記の状態でも puts doc すると内容が出てきます。 せっかく構造的なファイルなので読み込んでみます。

# 要素を指定して読み込む
# この方法では同要素が複数ある場合一番最初のが来るみたい
puts doc.elements['root/data']

# 全部回したいときは、ブロックを取って処理ができる
doc.elements['root'].each do |element|
puts element.
end

# 属性を取りたい場合はこんな感じに
doc.elements['root'].each do |element|
puts element.attributes['attr']
end

終わりに

htmlの構造とかにも使えるんだろうなと勝手に思っているので、ホームページからデータの抜き出しなど行うときに重宝させたいなと思っております。