soraなりの日々 - fc2 -

こころにひっかかったもの

rubyについて、、、rexml編


最近、業務で使うツールをc++で作成しまして。。。
定義部分をxmlで書いて、xerces使ってそのxmlの解析を行ってみたりしました。
(xmlを使うってのは、完璧に僕のわがままでしたが。。)

このxercesにもの凄く感謝!
おかげで工数をあまりかけずにツールが作成できました!!

ありがとう!apache xml project。

因みに使い方とサンプルは以下にあります↓

[IBM Xerces-C++を最大限に利用する−パート1]
http://www-06.ibm.com/jp/developerworks/xml/031114/j_x-xercc.html


んで、本題。
ツール用に作成したxmlファイル、やっぱり結構大きくなってしまうワケです。
なので、どの項目に何を設定したかを列挙するようなものがほしくなり、
それも作ろうかなぁ、と思い立つわけです。

microsoftから出てるxml notepadも良いんだけど、微妙にオイラの用件は
満たしてないような、、、

無いならないでつくっちまおーぜ!これまさにエンジニア!!
(探してないんだけどね。きちんと)

どうせ作るなら勉強がてらrubyで。。

て、ことで以下rubyのサンプルコード。

このエントリーをはてなブックマークに追加

まずは簡単なxmlファイルを、、、








<?xml version="1.0" encoding="Shift_JIS"?>

<test_xml>
  <foo>
    <name>test1</name>
  </foo>
  <foo>
    <name>test2</name>
  </foo>
  <foo>
    <name>test3</name>
  </foo>
  <foo>
    <name>test4</name>
  </foo>
  <foo>
    <name>test5</name>
  </foo>
</test_xml>


これをtext_na_xml.xmlとして作成。
そんで読み込みrubyのコードをrexmlを使って作成。








require "rexml/document"

# xmlファイルの指定
source = open( "test_na_xml.xml" )
doc = REXML::Document.new source

# 指定した要素を列挙
doc.elements.each( "test_xml/foo" ) do |element|
  p element.elements["name"].text
end

んで、これをtext_rexml.rbとして保存。
あとは実行!
て、ちょっと待て。
ファイルのオープンから5行ぐらいしか書いてないぞ!!
なんだこの簡単さは。
ま、それは置いておいて、さっさと実行








sora$ ruby test_rexml.rb


結果。








"test1"
"test2"
"test3"
"test4"
"test5"


いやぁー、すばらしい!すばらしいですぞ。
しかも、このrexmlrubyの標準ライブラリらすぃ!

ruby知ってる人だったら常識中の常識だろうけどc++プログラマな
オイラにはこの簡単さがちょっとしたショックだったのでした。

やっぱ、もっとruby勉強しよっっ。


環境:PowerBook G4 1.25 GHz memory 1 GB
  :ruby 1.8.4 (2005-12-24) [powerpc-darwin8.6.0]
このエントリーをはてなブックマークに追加

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://sora2hs.blog70.fc2.com/tb.php/171-1025596f
この記事にトラックバックする(FC2ブログユーザー)